Runtime.getRuntime()。exec问题win server 2003与win server 2008

时间:2010-10-01 20:56:39

标签: java windows-server-2008 runtime.exec

我有一些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中没有。

任何想法为什么?

1 个答案:

答案 0 :(得分:0)

同时阅读Runtime#exec()返回的stdoutstderrProcess个流。

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

这将返回在命令提示符下输入命令plain时通常看到的内容,包括错误。你的答案可能在那里。长话短说:When Runtime.exec() won't,这是一篇很好的文章,深入解释其陷阱。阅读所有4页。它包含有用的代码段。

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