0

我有一些java代码如下:

try {
  String outString ="java -jar C:\\ami\\bin\\ImmediateSubmit.jar 12345 localhost";
  Runtime.getRuntime().exec(outString);
  out.println("SUBMITTED");
} 
catch (IOException e) {
  System.out.println("IO Exception parse");
  out.println("FAILED");
  e.printStackTrace();
}

它在 win serv 2003 中运行良好,但在 win serv 2008 中运行良好。

任何想法为什么?

4

1 回答 1

0

读取返回的stdoutstderr流。ProcessRuntime#exec()

Process process = Runtime.getRuntime().exec(command);
InputStream stdout = process.getInputStream();
InputStream stderr = process.getErrorStream();

这将返回您在命令提示符中输入普通命令时通常会看到的任何内容,包括错误。你的答案可能就在里面。长话短说:当 Runtime.exec() 不会时,这是一篇很好的文章,深入解释了它的陷阱。阅读所有 4 页。它包含有用的代码片段。

我的猜测是要么java不被识别为命令(例如在 中丢失%PATH%),要么是用户权限问题。至少,在这种情况下,这是最常见的原因。

于 2010-10-01T21:43:54.137 回答