Здравствуйте, появилась небольшая проблема, я хочу что-бы можно было запустить из .jar другой джарник, собственно из приложение App1.jar запустить App2.jar Вот собственно, что я пишу
Код | File jar = new File(mainDir, "App2.jar"); URL[] urls = new URL[1]; try { urls[0] = jar.toURI().toURL(); } catch (MalformedURLException e) { e.printStackTrace(); System.out.print("Что-то тут не так... \n Stopping..."); System.exit(0); } ClassLoader classLoad = new URLClassLoader(urls); Class mainClass = null; Class rsrcClass = null; try { mainClass = classLoad.loadClass("org.spoutcraft.launcher.Main");
} catch (ClassNotFoundException e) { e.printStackTrace(); System.out.print("Что-то тут не так... \n Stopping..."); System.exit(0); } catch (SecurityException e) { e.printStackTrace(); System.out.print("Что-то тут не так... \n Stopping..."); System.exit(0); }
try { mainClass.newInstance(); } catch (InstantiationException e) { e.printStackTrace(); System.out.print("Что-то тут не так... \n Stopping..."); System.exit(0); } catch (IllegalAccessException e) { e.printStackTrace(); System.out.print("Что-то тут не так... \n Stopping..."); System.exit(0); } catch (Exception e) { e.printStackTrace(); System.out.print("Что-то тут не так... \n Stopping..."); System.exit(0); }
|
И после того как я запустил App1.jar у меня начинается запуск App2.jar но выдаёт java.lang.reflect.InvocationTargetException... Собственно вот META-INF файл приложения App2.jar
Код | Manifest-Version: 1.0 Rsrc-Class-Path: ./ rome-1.0.jar com.springsource.org.apache.commons.c odec-1.4.0.jar swing-layout-1.0.2.jar snakeyaml-1.8.jar com.springsou rce.com.sun.syndication-1.0.0.RC1.jar jdom-1.1.3.jar jcommander-1.7.j ar Class-Path: . Rsrc-Main-Class: org.spoutcraft.launcher.Main Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader
|
Я так-же пробовал изменить MainClass на org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader, но приложение вообще ничегоо не выдаёт в консоль и App2.jar не запускается. Может кто знает, как это пофиксить? |