在单独的过程中执行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