Hor*_*ux7 8 java process runtime.exec
如何独立启动第二个Java进程平台?理想情况下,它应该是当前运行的相同Java版本.有什么有用的系统属性吗?
kha*_*hik 10
您可以使用java.home系统属性来查找当前的JVM:
String jvm = new java.io.File(new java.io.File(System.getProperty("java.home"),
"bin"),
"java").getAbsolutePath();
Run Code Online (Sandbox Code Playgroud)
然后使用ProcessBuilder(或Runtime.exec)运行它.
请注意,JDK java.home指向JDK中包含的JRE目录.
一般来说,这是不可能的.
@ khachik的答案中提供的配方不一定适用于非Sun的Java实现.
java可执行文件不一定被调用java,也不一定存在于bin子目录中.即使使用Sun Java,在Windows上也有两个可执行文件; java和javaw.
对于不同的Java实现,启动JVM的命令的命令选项是不同的.因此,该ProcessBuilder步骤可能涉及非便携式参数.
虽然大多数JVM采用了主要的Sun java命令选项,但存在许多差异.例如:
j9和j9w作为可执行文件名.-X和-XX选择.rvm的可执行文件的名称,并且只支持一个子集的Sun的java选项.ikvm的可执行文件的名称.(注意:这些只是粗略阅读相应在线文档的例子.)
| 归档时间: |
|
| 查看次数: |
1116 次 |
| 最近记录: |