Ich schreibe eine Anwendung, die in zwei Jar-Dateien verpackt ist: startup.jar und resource.jar. In resource.jar Ich habe eine Java-Datei (ResourceFile.java) hat unter Code:NullPointerException bei Verwendung von "class.getResource ("/")"
String dir = ResourceFile.class.getResource("/").getPath();
Die Anwendung von ausgeführt werden soll, die „startup.jar“ (zwei JAR-Dateien sind gesetzt im selben Verzeichnis) in Betrieb genommen immer Nullpointer bei Temperaturen oberhalb von Code, aber ich werde, ich habe auch versucht, Code unten, um es zu ändern:
String dir = ResourceFile.class.getClassLoader().getResource("").getPath();
haben sie den gleichen Fehler.
System.out.println(ResourceFile.class.getResource("/") == null);
drucken wahr.
Ich habe mich ein wenig umgeschaut und konnte keine Lösung finden, die mir helfen könnte, das Problem zu lösen.
Sie können nur Dateien mit 'getResource' erhalten, wenn sie von einem Jar ausgeführt werden und sie existieren müssen. –
Warum erwartet man, dass die Ressource '"/"oder" "existiert? – rkosegi
@rkosegi Abhängig davon, wie das jar erstellt wird (wenn der zip nur Dateien enthält oder auch Verzeichniseinträge enthält, wenn ich mich nicht irre), kann 'getResource (" ")' auf den Ordner des Pakets in der JAR-Datei von verweisen die angegebene Klasse –