所以我在 linux mint 上编写了一个程序,在其中我将 gcc 从我的 jar 复制到一个临时文件夹 /tmp/some_number/ 中。我可以像 /tmp/some_number/gcc 这样的终端启动 gcc。问题是我不能对 ProcessBuilder 做同样的事情。
我写的:
try {
ProcessBuilder pb = new ProcessBuilder("tmp/some_number/gcc")
pb.directory(new File("tmp/some_number/"));
Process p = pb.start() <--- here comes the error
int retval = p.waitFor();
p.destroy();
} catch (Exception e) {e.printStackTrace();}
它总是抛出错误:
java.io.Exception: Cannot run program "/tmp/some_number/gcc" (in directory "/tmp/some_number"): error=13, Keine Berechtigung (means no permission)
many @s
Caused by: java.io.IOException: error=13, Keine Berechtigung
more @s
另一方面,我可以在 /tmp/some_number/ 中创建一个新文件并在文件中写入文本。
那么为什么 ProcessBuilder 不能启动我的文件呢?
存储库:https ://github.com/Xeroth95/MyEditor (它的文件 MyLinker)