Runtime.getRuntime (). Exec проблема win serv 2003 против win serv 2008 - PullRequest
0 голосов
/ 02 октября 2010

У меня есть следующий код 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 голосов
/ 02 октября 2010

Считайте как stdout , так и stderr потоков Process, возвращенных Runtime#exec().

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

Это будетвернуть то, что вы обычно видите при вводе команды plain в командной строке, включая ошибки.Ваш ответ может быть там.Короче говоря: Когда Runtime.exec () не , это отличная статья, подробно объясняющая ее подводные камни.Прочитайте все 4 страницы.Он содержит полезные фрагменты кода.

My думаю, состоит в том, что либо java не распознается как команда (например, отсутствует в %PATH%), либо это проблема с правами пользователя.По крайней мере, это наиболее распространенные причины в подобных случаях.

...