Java - Runtime.exec()无法运行

问题描述 投票:0回答:4

当我尝试运行任何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);

它工作正常,但如果我使用与我的Java应用程序捆绑在一起的JRE,我总是会收到错误,说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时会发生这种情况?

java macos runtime bundle
4个回答
© www.soinside.com 2019 - 2024. All rights reserved.