macOS上的Java权限被拒绝

时间:2018-11-06 11:40:07

标签: java macos process permission-denied

在Mac上,我有一个Java例程,该例程编写一个文件,然后调用macOS应用程序。这个应用程式会读取刚建立的档案。

Java返回错误号13 “权限被拒绝” 。但是,当我查看文件权限时,用户具有读取/执行权限。

从Java应用程序调用的MacOS应用程序是:

`/ Users / giorgio / Applications / KeySetter.app``

File.canExecute()返回true。 File.canRead()File.canWrite()也是如此。

我还使用以下例程重写权限:

List<String> chPermList = new LinkedList<String>();
chPermList.add("/bin/chmod");
chPermList.add("777");
chPermList.add(pathAndfile);
changePermissionToFileAndVerifyEsit(chPermList);
private void changePermissionToFileAndVerifyEsit(List chPermList) {
     try {
        ProcessBuilder pb = null;
        pb = new ProcessBuilder(chPermList);
        pb.redirectErrorStream(true);

        Process p = pb.start();

        BufferedReader br = new BufferedReader(new InputStreamReader(p
                    .getInputStream()));

        p.waitFor();

        if(p.exitValue()!=0) {
            Message.showErrorMessage("The permission change failed with exit value" + p.exitValue(), "KeySetter.app");
            System.exit(-5);
        }   else {
            System.out.println("Modify permissions (777)");
        }         
     } catch (IOException | InterruptedException e) {
         Message.showErrorMessage("Error in permissions for file", "KeySetter.app");
         System.exit(-6);
     }        
}

此后,我使用以下命令调用macOS应用程序:

Process process = Runtime.getRuntime().exec( this.pathCommandApplication );

并向我返回此错误:

java.io.IOException: Cannot run program "/Users/giorgio/Applications/KeySetter.app": error=13, Permission denied

有什么建议吗?谢谢。

0 个答案:

没有答案
相关问题