Runtime.getRuntime (). Exec problema del servidor 2003 del triunfo frente al servidor de la victoria 2008
-
27-09-2019 - |
Pregunta
Tengo algo de código Java de la siguiente manera:
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();
}
Funciona bien en la victoria serv 2003, pero no en la victoria serv 2008.
Cualquier idea por qué?
Solución
y stderr arroyos de la Process
devueltos por Runtime#exec()
.
Process process = Runtime.getRuntime().exec(command);
InputStream stdout = process.getInputStream();
InputStream stderr = process.getErrorStream();
Esto devolverá lo que normalmente se ve al entrar en la llanura de comando en el símbolo del sistema, incluidos los errores. Su respuesta puede estar ahí. En resúmen: Cuando Runtime.exec () no lo hará , este es un excelente artículo que explica sus trampas en profundidad. Leer todas las 4 páginas. Contiene fragmentos de código votos.
Mi conjetura es que sea java
no se reconoce como un comando (por ejemplo, falta de %PATH%
), o que se trata de un problema de permisos de usuario. Por lo menos, que son las causas más comunes en casos como el.