2015-08-20 10 views
0

Код ниже пытается запустить внешний исполняемый JAR-файл.Java ClassLoader VM Аргументы

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

Для установки аргументов JVM вам необходимо запустить JVM. Ваш текущий код будет запускать основной метод в JVM, который уже запущен.

Для запуска JVM, вероятно, проще всего запустить команду java, используя ProcessBuilder.