在单独的过程中执行Java应用程序

是否可以以平台无关的方式使用Java应用程序的名称(而不是其位置)在单独的进程中加载​​Java应用程序?

我知道你可以通过…执行程序

Process process = Runtime.getRuntime().exec( COMMAND );

…这种方法的主要问题是,此类调用是特定于平台的。

理想情况下,我会将方法包装成像…这样简单的东西。

EXECUTE.application( CLASS_TO_BE_EXECUTED );

…并以形式传入应用程序类的完全限定名称CLASS_TO_BE_EXECUTED

回答:

两个提示:

System.getProperty("java.home") + "/bin/java" 为你提供了Java可执行文件的路径。

((URLClassLoader) Thread.currentThread().getContextClassLoader()).getURL()帮助你重构当前应用程序的类路径。

然后你EXECUTE.application就是(伪代码):

Process.exec(javaExecutable, "-classpath", urls.join(":"), CLASS_TO_BE_EXECUTED)

以上是 在单独的过程中执行Java应用程序 的全部内容, 来源链接: utcz.com/qa/404739.html

回到顶部