在运行以下代码时,我目前遇到了严重的问题:
package practice;
import java.io.IOException;
public class ProgramExecutor {
public static void main (String [] args){
try{
Process p = Runtime.getRuntime().exec("/Applications/Utilities/Terminal.app");
} catch (IOException e){
e.printStackTrace();
}
}
}
它返回以下错误消息:
java.io.IOException: Cannot run program "/Applications/Utilities/Terminal.app": error=13, Permission denied
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:620)
at java.lang.Runtime.exec(Runtime.java:450)
at java.lang.Runtime.exec(Runtime.java:347)
at basicSkills.ProgramExecutor.main(ProgramExecutor.java:9)
Caused by: java.io.IOException: error=13, Permission denied
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:185)
at java.lang.ProcessImpl.start(ProcessImpl.java:134)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1029)
... 4 more
我将如何解决它。这似乎是由于我的Mac上的权限问题。我使用chmod命令更改了终端中的权限,但收效甚微。还有什么呢?是否可以以超级用户身份运行Eclipse以访问此文件?
答案 0 :(得分:6)
路径&#39; /Applications/Utilities/Terminal.app'是终端应用程序的路径,它是一个目录。实际的可执行终端程序路径是:
/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
这是您在exec
电话中需要的路径。
或者使用
open -n /Applications/Utilities/Terminal.app
命令。
答案 1 :(得分:1)
我收到了这个错误: java.io.IOException:无法运行程序&#34; /filetransfer.pl":error = 13,Permission denied
我解决了提供filetransfer.pl脚本文件执行权限的问题。我使用终端执行权限命令。 我的问题解决了。
chmod 777 filetransfer.pl