java - 从java运行linux命令

标签 java linux jar

我尝试从jar文件运行linux命令,但总是收到此错误:

java.io.IOException:无法运行程序“ls”:错误=13,权限被拒绝。

这是我的代码:

String s;
    Process p;
    String cmd= "ls";

    try {
        Runtime run = Runtime.getRuntime();
        p = run.exec(cmd);
        BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));

        while ((s = br.readLine()) != null){
        System.out.println("line: " + s);
        }

        p.waitFor();
        System.out.println ("exit: " + p.exitValue());
        p.destroy();

    } catch (Exception e) {
        System.out.println(e);
    }

感谢您的宝贵时间。

更新: 对我来说,我的解决方案是:我必须重新安装我的操作系统和 JDK,现在一切正常。

最佳答案

我希望您熟悉vi。如果没有,请忽略下面给出的第三个命令,只需将 Main.java 文件复制到 /Users/your-user-directory/

cd ~
pwd
vi Main.java
javac Main.java
java Main

Main.java

import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) {
        String s;
        Process p;
        String cmd = "ls";

        try {
            Runtime run = Runtime.getRuntime();
            p = run.exec(cmd);
            BufferedReader br = new BufferedReader(new InputStreamReader(p.getInputStream()));

            while ((s = br.readLine()) != null) {
                System.out.println("line: " + s);
            }

            p.waitFor();
            System.out.println("exit: " + p.exitValue());
            p.destroy();

        } catch (Exception e) {
            System.out.println(e);
        }
    }
}

关于java - 从java运行linux命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60859911/

相关文章:

java - feed方法java if语句

java - 如何清理 Runtime.exec() 中使用的用户输入?

python - 如何避免 Linux 中失效的 python 进程?

linux - 如何根据片段长度对床文件进行子集化?

java - 如何在 java 中实用地从 jar 中删除特定文件/文件夹

android - 在 Android 中从 jar lib 声明命名空间

java - 如何在可运行的 jar 中访问我的应用程序资源?

java - Java 1.5 上的 Clojure uberjar

linux - Vim,拆分窗口中断长度突出显示

java - "Synonyms"类