Ich habe ein Problem beim Laden meiner JAR-Datei zur Laufzeit. Mein hotel.jar wird geladen und ein Verfahren davon (make) wird mit dem folgenden Code aufgerufen:Problem beim Laden einer JAR-Datei, die eine Abhängigkeit von einer anderen JAR-Datei hat
File file = new File("c:/ComponentFiles/hotel.jar");
URL jarfile = new URL("jar", "", "file:" + file.getAbsolutePath() + "!/");
URLClassLoader cl = URLClassLoader.newInstance(new URL[]{jarfile});
Class componentClass = cl.loadClass("HotelPackage.HotelMgt");
Object componentObject = componentClass.newInstance();
Method setMethod = componentClass.getDeclaredMethod("makeReservation", null);
setMethod.invoke(componentObject, null);
Das Problem in der Klasse HotelPackage.HotelMgt meiner JAR-Datei ist, ich habe eine Klasse Variable eines anderen Klasse (HotelPackage.Hotel), die sich in einer anderen JAR-Datei befindet. Ich versuchte, die andere JAR-Datei mit dem gleichen Code wie oben zu öffnen und zu laden, aber ich erhalte die Ausnahme, die die Klasse nicht def .: Exception in thread „main“ java.lang.NoClassDefFoundError finden: BeanPackage/Hotel
Was ist die Lösung?
In diesem Fall möchten Sie vielleicht alle Gläser in ein Meisterglas legen - vielleicht ist dieses Projekt für Sie interessant: http://one-jar.sourceforge.net/ – FunThomas424242