我有一个桌面应用程序,当有人按下按钮时,我希望它启动另一个执行类主要方法的JVM.我的桌面应用程序已经依赖于包含具有我想要执行的主方法的类的jar.
目前我有以下代码,但是,我希望他们这样做是一种更优雅的方式:
Runtime runtime = Runtime.getRuntime();
Process process = runtime.exec("java -jar another.jar");
Run Code Online (Sandbox Code Playgroud)
我知道我也可以使用ProcessBuilder.
有没有这样的方法(原谅伪代码):
Jvm.execute(Main.class);
Run Code Online (Sandbox Code Playgroud)
由于我想调用的Main类已经存在于我的类路径中,因此必须java通过Runtime 运行命令才会感到奇怪.
非常好的问题。尝试搜索管理API:http://cupi2.uniandes.edu.co/javadoc/j2se/1.5.0/docs/api/javax/management/package-frame.html
祝你好运。
我不确定这个 API 是否存在,但如果存在的话它应该存在。我个人像您一样使用 ProcessBuilder,但通过检索当前进程的系统属性来指定 java 的显式路径。