我有一些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中没有。
任何想法为什么?
答案 0 :(得分:0)
同时阅读Runtime#exec()
返回的stdout的stderr和Process
个流。
Process process = Runtime.getRuntime().exec(command);
InputStream stdout = process.getInputStream();
InputStream stderr = process.getErrorStream();
这将返回在命令提示符下输入命令plain时通常看到的内容,包括错误。你的答案可能在那里。长话短说:When Runtime.exec() won't,这是一篇很好的文章,深入解释其陷阱。阅读所有4页。它包含有用的代码段。
我的猜测是java
未被识别为命令(例如%PATH%
中缺失),或者是用户权限问题。至少,在这种情况下,这是最常见的原因。