Когда я пытаюсь запустить любую команду Runtime.exec (), например, такую простую, чтобы напечатать версию Java:
String [] cmd = { "java", "-version" };
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec(cmd);
BufferedReader stdError = new BufferedReader( new InputStreamReader( process.getErrorStream() ) );
String s = null;
while ( ( s = stdError.readLine() ) != null )
System.out.println(s);
Работает просто отлично, но если я использую JRE в комплекте с моим Java-приложением, я всегда получаю сообщения о том, что java неизвестен:
java.io.IOException: Cannot run program "java": error=2, No such file or directory
at java.lang.ProcessBuilder.start(ProcessBuilder.java:1048)
at java.lang.Runtime.exec(Runtime.java:620)
at java.lang.Runtime.exec(Runtime.java:450)
at java.lang.Runtime.exec(Runtime.java:347)
at org.runner.Runner.main(Runner.java:11)
Почему это происходит при использовании JRE в комплекте?