【发布时间】:2010-11-23 21:27:10
【问题描述】:
我打算生一个孩子来做一些工作。我想使用与父进程相同的命令行来生成子进程。
例如,如果父级是这样启动的:
#>/usr/bin/java ParentProgram
然后我会打电话给
Runtime.exec("/usr/bin/java ChildProgram");
示例 2:
#>/usr/bin/jdb -cp ./:/home/name/tool/library.jar -Xmx4G ParentProgram
然后我会打电话给
Runtime.exec("/usr/bin/jdb -cp ./:/home/name/tool/library.jar -Xmx4G ChildProgram");
我知道我可以从系统属性中找到类路径。而不是使用 Runtime.exec 我计划使用 ProcessBuilder,它将父环境复制到子环境。但基本上我想使用与父级相同的 java 程序和参数。我没有在系统属性中找到此信息。
【问题讨论】:
-
似乎在这里得到了回答:stackoverflow.com/questions/1518213/…
-
该信息绝对有用。虽然它没有告诉我用于启动 jvm 的命令(即 /usr/bin/java),但它为我做了其他事情。当我使用 /usr/bin/java 启动程序时,它会显示所有传递的参数。但是,当我开始使用 /usr/bin/jdb 时,RuntimeMXBean 显示了 -Xdebug 和 -Xrunjdwp 的附加参数:transport=dt_socket,address=hostname.local:58481,suspend=y
所以我认为 jdb 实际上使用额外的 args 启动普通 jvm(这也很有意义)。但是知道整个命令还是很高兴的。
标签: java runtime.exec