【发布时间】:2015-10-02 17:39:04
【问题描述】:
我有一些代码在从终端启动时可以正常工作,但从 Eclipse 中启动时就不行。显然,我可以只使用终端,但出于调试目的,最好解决问题。此外,很高兴了解正在发生的问题。谁能解释一下在 Eclipse 中启动与在终端中启动有何不同。 代码:
static public Process getNewLiEProcess(boolean redirect){
ProcessBuilder proc = new ProcessBuilder("lie");
proc.redirectErrorStream(redirect);
try {
return proc.start();
// TODO: figure out why this consistently fails when run in Eclipse console,
// even though it seems to work when run in terminal.
} catch (IOException e) {
e.printStackTrace();
return null;
}
}
在 Eclipse 中启动时的错误消息:
java.io.IOException: Cannot run program "lie": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1047)
at edu.siu.math.egut.io.LiE.getNewLiEProcess(LiE.java:224)
at edu.siu.math.egut.io.LiE.<init>(LiE.java:198)
at edu.siu.math.egut.main.CharacterAction.main(CharacterAction.java:106)
Caused by: java.io.IOException: error=2, No such file or directory
at java.lang.UNIXProcess.forkAndExec(Native Method)
at java.lang.UNIXProcess.<init>(UNIXProcess.java:184)
at java.lang.ProcessImpl.start(ProcessImpl.java:130)
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1028)
... 3 more
Exception in thread "main" java.lang.NullPointerException
at edu.siu.math.egut.io.LiE.<init>(LiE.java:202)
at edu.siu.math.egut.main.CharacterAction.main(CharacterAction.java:106)
当使用终端启动时,相同的代码成功地实例化了一个“lie”进程(程序“lie”在我系统的 usr/bin 中)。
【问题讨论】: