我目前在运行以下代码时遇到了很大的并发症:
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 以访问此文件?
路径"/Applications/Utilities/Terminal.app"是终端应用程序的路径,它是一个目录。实际可执行终端程序路径为:
/Applications/Utilities/Terminal.app/Contents/MacOS/Terminal
这是您在exec
调用中需要的路径。
或者使用
open -n /Applications/Utilities/Terminal.app
命令。
我收到此错误:java.io.IOException:无法运行程序"/filetransfer.pl":错误=13,权限被拒绝
我解决了授予 filetransfer.pl 脚本文件执行权限的问题。我使用终端执行权限命令。我的问题已解决。
CHMOD 777 filetransfer.pl