以下代码尝试启动外部可执行JAR文件。
final File file = new File("/path/to/executable.jar");
JarFile jarFile = null;
jarFile = new JarFile(file);
final Manifest manifest = jarFile.getManifest();
final URLClassLoader child = new URLClassLoader(new URL[] { file.toURI().toURL() }, Launcher.class.getClassLoader());
final Class<?> classToLoad = Class.forName("com.example.launcher.Launcher", true, child);
final Method method = classToLoad.getDeclaredMethod("main", String[].class);
final Object[] arguments = { new String[0] };
method.invoke(null, arguments);
jarfile.close();
主方法接收的参数可以在Object[] arguments
中设置但是如何设置VM参数,例如-XstartOnFirstThread
?
答案 0 :(得分:0)
要设置JVM参数,必须启动JVM。您当前的代码将在已经运行的JVM中运行main方法。
要启动JVM,使用java
运行ProcessBuilder
命令可能最简单。