Hallo liebe Entwickler,
folgender Sachverhalt, welcher droht mich in den Wahnsinn zu treiben.
Ich habe ein Tool entwickelt, welches bei Programmstart dynamisch Algorithmen einliest.
Dabei suche ich in einem gewissen Package "de.kuebelkasten.routing.core.algorithms", was unter Eclipse auch wunderbar funktioniert.
Nun soll man aber, um das Programm ausführen zu können, kein Eclipse nutzen. Schon alleine weil der Quellcode nicht öffentlich sein soll
Lasse ich mir nun eine ausführbare jar erstellen, so findet er eben dieses Package nicht mehr.
Vielleicht seh ich den Fehler auch selber gerade nicht.
Hier mal noch etwas Code für besseres Verständnis:
Ach ja. Der Fehler kommt in der ersten foreach-Schleife, bei directory.list() in Form einer NullpointerException, obwohl directory selber nicht null ist.
Stacktrace sagt Folgendes:
Hoffe jemand hat eine schnelle Lösung parad. Danke schon mal
folgender Sachverhalt, welcher droht mich in den Wahnsinn zu treiben.
Ich habe ein Tool entwickelt, welches bei Programmstart dynamisch Algorithmen einliest.
Dabei suche ich in einem gewissen Package "de.kuebelkasten.routing.core.algorithms", was unter Eclipse auch wunderbar funktioniert.
Nun soll man aber, um das Programm ausführen zu können, kein Eclipse nutzen. Schon alleine weil der Quellcode nicht öffentlich sein soll
Lasse ich mir nun eine ausführbare jar erstellen, so findet er eben dieses Package nicht mehr.
Vielleicht seh ich den Fehler auch selber gerade nicht.
Hier mal noch etwas Code für besseres Verständnis:
Code:
// alle unterordner für algorithmen finden und anschliessend durchsuchen String mainAlgorithmResource = "/de/kuebelkasten/routing/core/algorithms/"; // hier müssen alle Algorithmen liegen final AlgorithmSet installedAlgorithms = new AlgorithmSet(); // hier werden alle Algorithmen abgelegt // wir suchen ausgehend von unserem aktuellen Instanzstandpunkt final URL algorithmURL = getClass().getResource(mainAlgorithmResource); final File directory = new File(algorithmURL.getFile()); for (String dirContent : directory.list()) { // sind auf ein Verzeichnis gestossen, welches weiter durchsucht werden muss if (!dirContent.endsWith(".class")) { final URL algorithmDirectoryURL = getClass().getResource(mainAlgorithmResource + dirContent); final File algorithmDirectoryFile = new File(algorithmDirectoryURL.getFile()); for (String algorithmFile : algorithmDirectoryFile.list()) { //... } } }
Stacktrace sagt Folgendes:
Code:
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:56)
Comment