对于chmod命令,Java中的权限被拒绝错误

Jam*_*ore 11 java permissions

我有一个可执行文件(ffmpeg),我试图在Mac上运行Java程序.我使用Java程序发送命令chmod 777 /path/to/ffmpeg,但是当我尝试运行ffmpeg时,我收到以下错误:

java.io.IOException: Cannot run program "/Users/james/WalkTheHall/ffmpeg": error=13, Permission denied
Run Code Online (Sandbox Code Playgroud)

但是当我chmod 777 /path/to/ffmpeg在打开Java应用程序之前自己从Terminal 运行时,ffmpeg的命令将在Java程序中运行得很好.

chmod在Java程序中调用和自己调用它之间有区别吗?为什么它不起作用?谢谢!

小智 6

我的代码中遇到了同样的问题.我通过在exec之后添加waitFor来解决这个问题.执行下一个命令时,"chmod"进程未完成.代码可能如下所示:

p = Runtime.getRuntime.exec("chmod 777 xxx");
p.waitFor();
Runtime.getRuntime.exec("./xxx");
Run Code Online (Sandbox Code Playgroud)


Car*_*rlG 4

我猜这chmod是一个 shell 命令,而不是可执行文件。尝试运行chmod你的 shell。请在此处查看更多详细信息:想要从 Java 调用 linux shell 命令