Ubuntu中使用Runtime.getRuntime().exec时出现Permission denied

banjiamayi 2009-09-29 05:39:53
在Ubuntu中运行如下代码时出错:
String path = "/home/GMT/";
Process process;
process = Runtime.getRuntime().exec ("chmod 777 " + path + "map.sh");
process = Runtime.getRuntime().exec (path + " ./map.sh");

错误:
java.io.IOException: Cannot run program "/home/GMT/": java.io.IOException: error=13, Permission denied
at java.lang.ProcessBuilder.start(ProcessBuilder.java:459)
at java.lang.Runtime.exec(Runtime.java:593)
at java.lang.Runtime.exec(Runtime.java:431)
at java.lang.Runtime.exec(Runtime.java:328)
at my.chang.usegmt.build.Build.doCommand(Build.java:75)
at my.chang.usegmt.build.Build.main(Build.java:86)
Caused by: java.io.IOException: java.io.IOException: error=13, Permission denied
at java.lang.UNIXProcess.<init>(UNIXProcess.java:148)
at java.lang.ProcessImpl.start(ProcessImpl.java:65)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:452)
... 5 more

想请教各位一下如何解决!谢谢!
...全文
1116 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
lxxzhy 2009-10-09
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 banjiamayi 的回复:]
String path = "/home/GMT/";
Process process;
process = Runtime.getRuntime().exec("chmod 777 " + path + "map.sh");
process.waitFor();
process = Runtime.getRuntime().exec("/bin/sh "+path+"map.sh");
用了"/bin/sh"就可以了!


[/Quote]
哦.......
banjiamayi 2009-10-09
  • 打赏
  • 举报
回复
String path = "/home/GMT/";
Process process;
process = Runtime.getRuntime().exec("chmod 777 " + path + "map.sh");
process.waitFor();
process = Runtime.getRuntime().exec("/bin/sh "+path+"map.sh");
用了"/bin/sh"就可以了!

banjiamayi 2009-09-30
  • 打赏
  • 举报
回复
问题已经解决,谢谢!
banjiamayi 2009-09-30
  • 打赏
  • 举报
回复
使用process.waitFor(); 后问题依然存在!
lxxzhy 2009-09-30
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 yidinghe 的回复:]
/home/GMT/ 只是一个目录,而不是一个命令。
[/Quote]

process = Runtime.getRuntime().exec ("chmod 777 " + path + "map.sh");
楼主运行的是chmod
捏造的信仰 2009-09-30
  • 打赏
  • 举报
回复
/home/GMT/ 只是一个目录,而不是一个命令。
lxxzhy 2009-09-30
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 banjiamayi 的回复:]
问题已经解决,谢谢!
[/Quote]
说一下怎么解决的啊.
lxxzhy 2009-09-29
  • 打赏
  • 举报
回复
process = Runtime.getRuntime().exec ("chmod 777 " + path + "map.sh");
process.waitFor();
process = Runtime.getRuntime().exec (path + " ./map.sh");
lxxzhy 2009-09-29
  • 打赏
  • 举报
回复
权限问题.

62,616

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧