【发布时间】:2010-11-30 04:43:19
【问题描述】:
我有一个桌面应用程序,当有人按下按钮时,我希望它启动另一个执行类的 main 方法的 JVM。我的桌面应用程序已经依赖于包含我要执行的主要方法的类的 jar。
目前我有以下代码,但是,我希望它们是一种更优雅的方式:
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("java -jar another.jar");
我知道我也可以使用 ProcessBuilder。
有没有办法如(请原谅伪代码):
Jvm.execute(Main.class);
由于我要调用的 Main 类已经存在于我的类路径中,所以不得不通过 Runtime 运行 java 命令感觉很奇怪。
【问题讨论】:
-
你不能从你的代码中执行那个 main 方法?
-
您可以接受启动新的后台线程吗?在这种情况下,您甚至可以向用户报告任务完成情况。
-
我想要一个不同的 jvm。
-
没有用于启动另一个 JVM 的内置方法。这是您需要的基本代码,尽管您可以进行一些调整。请参阅 [this 真的是从 Java 代码启动第二个 JVM 的最佳方式吗? ](stackoverflow.com/questions/1229605/…) 了解详情。
-
我相信没有办法像你建议的那样做。