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 次 |
最近记录: |