首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >chmod命令的Java中出现权限被拒绝错误

chmod命令的Java中出现权限被拒绝错误
EN

Stack Overflow用户
提问于 2010-06-21 23:15:13
回答 5查看 46.2K关注 0票数 12

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

代码语言:javascript
复制
java.io.IOException: Cannot run program "/Users/james/WalkTheHall/ffmpeg": error=13, Permission denied

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

从Java程序内部调用chmod和我自己调用它有区别吗?为什么它不能工作呢?谢谢!

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-06-21 23:22:52

我猜chmod是一个外壳命令,而不是一个可执行文件。尝试通过您的shell运行chmod。点击此处查看更多详情:Want to invoke a linux shell command from Java

票数 4
EN

Stack Overflow用户

发布于 2011-08-26 18:05:44

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

代码语言:javascript
复制
p = Runtime.getRuntime.exec("chmod 777 xxx");
p.waitFor();
Runtime.getRuntime.exec("./xxx");
票数 7
EN

Stack Overflow用户

发布于 2010-06-21 23:18:15

是的,这是有区别的。当您从终端运行该命令时,执行该操作的是您,因此将使用您的凭据执行该操作。Java应用程序正在使用Java应用程序的权限运行该命令。这是为了防止应用程序运行,然后对文件系统进行危险的、不必要的更改。也许其他人可以详细说明并指导解决此问题的方法。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3085897

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档