我尝试从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/