从java运行linux命令
我试图从jar文件运行linux命令,但总是出现以下错误:从java运行linux命令,java,linux,jar,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 Buffered
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
。如果没有,请忽略下面给出的第3个命令,只需将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);
}
}
}
听起来您有一个名为
ls
的文件,它不是可执行程序。尝试将命令更改为“/bin/ls”
相同错误:java.io.IOException:无法运行程序“/bin/ls”:错误=13,权限被拒绝TryString cmd=“ls-l”
java.io.IOException:无法运行程序“ls”:错误=13,权限被拒绝从存在jar的文件夹运行终端。要授予所有权限(读、写和执行)->chmod-R 777/文件夹
。然后执行jar