通过exec在终端中运行命令,而不是以root身份运行Java

时间:2012-03-29 16:23:38

标签: java exec runtime.exec

我一直在玩exec,虽然它打开了一个终端,用户就是我,它似乎无法执行命令我给它= /代码如下:

try{
  Runtime rt = Runtime.getRuntime();
  Process proc = rt.exec("xterm -e \"source /home/USER/.bashrc; ~/./myscript.sh\"")
}
catch(Throwable t)
  t.printStackTrace();

在xterm控制台中,我得到:

xterm: Can't execvp ": No such file or directory
user@user:$

这是一个等待使用的终端,在我按下它之前不会消失。

不确定这里发生了什么?...

感谢。

1 个答案:

答案 0 :(得分:0)

我认为你不能将shell内容传递给xterm的-e选项。它需要该程序的程序和可选参数。 source是内置的shell。

你可以尝试做的事情就是调用你的myscript.sh并修改它,以便它将你的bashrc放在顶部。或者创建一个新的bash脚本来源你的rc文件,然后运行myscript.sh