无法运行程序“/Applications/Utilities/Terminal.app”:错误= 13,权限被拒绝

时间:2014-12-09 14:06:14

标签: java eclipse macos permissions

在运行以下代码时,我目前遇到了严重的问题:

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以访问此文件?

2 个答案:

答案 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