0
我想从Java代码中执行一些Mac的(linux's?)命令。我以这个短课为例。我试着在这个论坛上阅读其他类似的问题,但无法解决它。从java运行Linux的命令行
它给了我错误。
我想:
Runtime rt = Runtime.getRuntime();
Process pr = rt.exec("/Users/xxxx/Documents/ABC");
访问被拒绝的消息出现。下面的代码给出了错误。
这个问题 Want to invoke a linux shell command from Java 已经谈到了类似的问题,但我不认为他们结束了他们的辩论。
我使用的是mac os 10.7。
public class Main {
public static void main(String args[]) {
try {
Process p = Runtime.getRuntime().exec(new String[]{"bash","-c","ls /Users/xyz/Documents/ABC"});
BufferedReader input = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line=null;
while((line=input.readLine()) != null) {
System.out.println(line);
}
int exitVal = p.waitFor();
System.out.println("Exited with error code "+exitVal);
} catch(Exception e) {
System.out.println(e.toString());
e.printStackTrace();
}
}
}
该进程是否有适当的权限来查看该对象? – 2012-07-22 01:42:35
如果我将它作为自己运行,指向我拥有的文件,它会运行并且无错地退出。 – 2012-07-22 01:43:58
请编辑您的文章并添加生成的_complete_堆栈跟踪。 – 2012-07-22 01:44:24