java中的exec方法无法执行命令

时间:2014-05-28 10:15:39

标签: java command

我正在尝试使用exec方法执行命令

proc3=Runtime.getRuntime().exec("umount "+m);

其中m是可变的,具有像/ mnt,/ media这样的目录位置 当我在命令提示符下执行命令时,它将按预期工作,但是使用java exec方法,它不能正常工作,给出退出状态2。 可能是什么原因?

2 个答案:

答案 0 :(得分:1)

尝试ProcessBuilder

ProcessBuilder pb = new ProcessBuilder("umount",p1,p2);
pb.start();

您可以根据需要向ProcessBuilder的构造函数传递任意数量的参数。

PS:别忘了检查你的许可。

答案 1 :(得分:0)

你有两个选择。 1)使用su启动服务器/ servlet(不是理想选项)。 2)在umount上为启动servlet服务的用户提供sudo访问权限,以便它可以执行(可能需要密码)。你可能需要检查一下。

识别错误的步骤: 编写一个shell脚本,其中包含命令umount $ 1> out.log 2> out.err。这会将任何操作系统错误记录到一个文件中,从而进一步调试。