命令在我打开的终端中可执行,但是当我使用java函数打开终端并执行时无法执行

时间:2018-10-06 18:17:06

标签: java shell command-line

我正在尝试编写一个可以打开终端并向其输入命令的Java程序。命令是“ wrspice”,可以启动应用程序。我在.bashrc中添加了“ wrspice” PATH,并且工作正常。但是,当我使用ProcessBuilder编写Java代码执行时,它弹出“ bash:wrspice:找不到命令”错误。这是我的Java代码:

final String[] wrappedCommand;
wrappedCommand = new String[]{ "xterm", "-hold", "-e", "wrspice"};
Process process = new 
ProcessBuilder(wrappedCommand).redirectErrorStream(true).start();

当我用“ ls”替换“ wrspice”以打印文件列表时,此代码可以正常工作。但是,当我尝试“ wrspice”时,出现“找不到命令”的错误。

这是我在.bashrc中添加“ wrspice”的方法:     导出PATH = / usr / local / xictools / bin:$ PATH

有人有什么想法吗?预先感谢。

1 个答案:

答案 0 :(得分:0)

Java不是交互式shell。指定命令的完整路径。而且您不需要new String[]。喜欢,

wrappedCommand = { "xterm", "-hold", "-e", "/usr/local/xictools/bin/wrspice"};

您可能还应该指定xterm的路径。仔细检查系统。

wrappedCommand = { "/usr/bin/xterm", "-hold", "-e", "/usr/local/xictools/bin/wrspice"};