Pfad aus Ressource-Datei auslesen

D33d

Mitglied
Hallo,

ich habe eine Frage an euch
ich habe jetzt schon ettliche Möglichkeiten getestet aber keine hat funktioniert.
Und zwar habe ich die String Variable "action" die war bisher immer statisch, ganz unten definiert mit einem festen Pfad.
Da sich der Pfad aber ab und an ändern kann, sollte ich nun eine configdatei erstellen (die heißt in diesem fall "userauth.config") die sich im .jar in den Ressourcen befindet ("UserMgr.jar\resources\userauth.config") in dieser steht in der ersten Zeile der Pfad zu einem ganz anderen Ort, wohin dürfte hierfür belanglos sein.
Jedenfalls will ich diesen Pfad auslesen und auf "action" speichern, damit ich ihn im weiteren Programmverlauf benutzen kann.

So ich habe jetzt unten im Program rausgenommen das statisch ein String zugewiesen wird und dafür oben im Konstruktor folgendes eingefügt:
Code:
        try{

dann kommt das:
Code:
            URL userauthpathrurl = ClassLoader.getSystemResource("./resources/userauth.config");
            BufferedReader pathreader = new BufferedReader(new InputStreamReader(userauthpathrurl.openStream()));

bzw hiermit hab ichs auch versucht:
Code:
            BufferedReader pathreader = new BufferedReader(new InputStreamReader(getClass().getClassLoader().getResourceAsStream("./resources/userauth.config")));

und dann das hier:
Code:
            String userauthpath = pathreader.readLine();
            if (userauthpath != null){
                jLabelUserLoggedon.setText(userauthpath);
                action = userauthpath;}
            else{
                jLabelUserLoggedon.setText("CGI not found!");
            }
            pathreader.close();
        }
        catch(IOException ioe)
        {ioe.printStackTrace();}


Im Debugger funktioniert alles einwandfrei nur wenn ich das dann auf dem PC ausführe auf dem es laufen soll kommt folgendes:

java -jar UserMgr.jar
Java Accessibility Bridge for GNOME loaded.

Mar 15, 2010 5:50:39 PM org.jdesktop.application.Application$1 run
SEVERE: Application class usermgr.UserMgrApp failed to launch
java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:61)
at java.io.InputStreamReader.<init>(InputStreamReader.java:55)
at usermgr.UserMgrView.<init>(UserMgrView.java:89)
at usermgr.UserMgrApp.startup(UserMgrApp.java:20)
at org.jdesktop.application.Application$1.run(Application.java:171)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Exception in thread "AWT-EventQueue-0" java.lang.Error: Application class usermgr.UserMgrApp failed to launch
at org.jdesktop.application.Application$1.run(Application.java:177)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Caused by: java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:61)
at java.io.InputStreamReader.<init>(InputStreamReader.java:55)
at usermgr.UserMgrView.<init>(UserMgrView.java:89)
at usermgr.UserMgrApp.startup(UserMgrApp.java:20)
at org.jdesktop.application.Application$1.run(Application.java:171)
... 7 more

Zum System, ich benutze Netbeans und wie gesagt, da funktioniert es 1A, auch wenn ichs im Debuggmodus Schritt für Schritt durchgehe, aber auf dem PC auf dem es letztendlich laufen soll (Solaris PC) kommt eben das.

Ich hoffe ihr könnt mir helfen, wenn ihr noch Details braucht, nur raus damit!
 

lumo

Top Contributor
Hier der Code zu deinem Problem
Code:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Test {
	public static void main(String[] args) {
		BufferedReader br = new BufferedReader(new InputStreamReader(Test.class
				.getResourceAsStream("resources/userauth.config")));
		String cfg = "failed";
		try {
			cfg = br.readLine();
		} catch (IOException e) {
			e.printStackTrace();
		}
		System.out.println(cfg);
	}
}

und unten hab ich noch die .jar angehängt, damit du siehst, dass es auch funktioniert...
bei auftretenden fragen... einfach posten ;)
 

Anhänge

  • Test.jar
    86 KB · Aufrufe: 7

D33d

Mitglied
Hi,

danke für die schnelle antwort.
ich hab dein Tool getestet und es funktioniert einwandfrei.
Jetzt habe ich die Zeile mit bufferedreader bei mir eingefügt und hab wieder ein Problem:

Code:
BufferedReader pathreader = new BufferedReader(new InputStreamReader([COLOR="Red"]usermgr.UserMgrView[/COLOR].class
                            .getResourceAsStream("resources/userauth.config")));

Ich hab mit Netbeans das Program als eine Desktopapplication erstellt. Und Netbeans legt dafür dann gleich mehrere Klassen an:

-UserMgrApp: die am anfang alles aufruft und
-UserMgrView: hier hab ich mit swing die grafische Oberfläche und eben mein ganzen Funktionien, eben was passiert wenn man diesen oder jenen Button drückt.

So...in der UserMgrView steht nun dieser Codeausschnitt im Konstruktor, deswegen hab ich zuerst als Klassenname "UserMgrView" angegeben...funktioniert nicht
Application class usermgr.UserMgrApp failed to launch
java.lang.NullPointerException ...
dann "usermgr.UserMgrView"...funktioniert nicht, selbe Meldung.
"this." oder irgendwelche andren Versuche, werden mir sowieso sofort rot unterlegt und ich hab keine Ahnung was ich hier jetzt noch machen soll!
 

lumo

Top Contributor
schon mit
Code:
getClass().getResourceAsStream("resources/userauth.config")
versucht?

das problem an der sache ist, dass er dann den pfad sucht, aus dem verzeichnis, wo die class file liegt...

bei mir lag das Test.class file im default path... was netbeans so treibt kann ich dir nicht sagen,
habe netbeans vor langer zeit den rücken gekehrt und bin nun eclipse fan ;)
 

D33d

Mitglied
Hm damit funktioniert es auch nicht es kommt immer folgende Fehlermeldung

SCHWERWIEGEND: Application class usermgr.UserMgrApp failed to launch
java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:61)
at java.io.InputStreamReader.<init>(InputStreamReader.java:55)
at usermgr.UserMgrView.<init>(UserMgrView.java:90)
at usermgr.UserMgrApp.startup(UserMgrApp.java:20)
at org.jdesktop.application.Application$1.run(Application.java:171)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Exception in thread "AWT-EventQueue-0" java.lang.Error: Application class usermgr.UserMgrApp failed to launch
at org.jdesktop.application.Application$1.run(Application.java:177)
at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
at java.awt.EventQueue.dispatchEvent(EventQueue.java:461)
at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242)
at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157)
at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149)
at java.awt.EventDispatchThread.run(EventDispatchThread.java:110)
Caused by: java.lang.NullPointerException
at java.io.Reader.<init>(Reader.java:61)
at java.io.InputStreamReader.<init>(InputStreamReader.java:55)
at usermgr.UserMgrView.<init>(UserMgrView.java:90)
at usermgr.UserMgrApp.startup(UserMgrApp.java:20)
at org.jdesktop.application.Application$1.run(Application.java:171)
... 7 more

Sollte ich mal wieder ein Javaprojekt haben werd ichs auch mal mit Eclipse versuchen.
 

lumo

Top Contributor
usermgr <- dein package?
UserMgrApp <- deine HAUPT applikation?

wenn das so ist dann versuchs mit UserMgrApp.class.get....usw

achja... deine verzeichnisstruktur muss dann so aussehen

[verz.usermgr] mit den files UserMgrApp.class und dem unterordner [resource] in dem deine config liegt...

lass dir mal ausgeben in welchem folder der sucht, und schau wo die config wirklich liegt...
 

D33d

Mitglied
Ha ich habs gefunden!
Also zum einen hab ich jetzt UserMgrApp.class.getR... da stehen und ausserdem hatte ich nen fehler in der Verzeichnisstrucktur. Es gibt zwei resources verzeichnisse, eins direkt im Package und eines im Unterverzeichnis usermgr, das sieht ungefähr so aus:

Code:
UserMgr.jar
    META-INF
    resources
    usermgr
        resources

ich hatte die configdatei im falschen resource-verzeichnis, nämlich im oberen, jetzt im Unteren funktioniert es.

Dankeschön für die Hilfe! Das bringt mich ein ganzes Stück weiter!
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
kodela String kann nicht zu Pfad konvertiert werden Allgemeine Java-Themen 16
izoards Java Home Pfad unabhängig von der Version Allgemeine Java-Themen 7
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
G Datei aus Ordner wählen, ohne den Dateinamen im Pfad angeben zu müssen Allgemeine Java-Themen 4
N relativier Pfad für sqlite-Datenbank in Gradle/IntelliJ Allgemeine Java-Themen 2
O Leerzeichen und Umlaute im Pfad einer Java Applikation machen Probleme Allgemeine Java-Themen 13
S Pfad zu Ressourcen Allgemeine Java-Themen 17
T Probleme mit dem Pfad zum Propertie file Allgemeine Java-Themen 7
C FileOutputStream konkreter Pfad Allgemeine Java-Themen 3
J Datei löschen, die Leerzeichen im Pfad hat Allgemeine Java-Themen 5
L Classpath Relativer Pfad einer Resource? Allgemeine Java-Themen 9
sandaime CMD aufrufen und aktuellen pfad ändern Allgemeine Java-Themen 11
J .exe Dateien werden nicht gestartet obwohl Pfad richtig Allgemeine Java-Themen 6
C pfad vom Image ausgeben lassen Allgemeine Java-Themen 5
O log4j pfad per umgebungsvariable setzen Allgemeine Java-Themen 5
K Classpath Falscher Pfad? o.O Allgemeine Java-Themen 2
S Shell Commands mit absolutem Pfad ausführen Allgemeine Java-Themen 2
F LWJGL in keinem Java libary Pfad? Allgemeine Java-Themen 2
M FileInputStream relativer Pfad in .jar Allgemeine Java-Themen 2
D pfad zur jre linux Allgemeine Java-Themen 8
C Kompletter Pfad aus "input type=file" auslesen Allgemeine Java-Themen 3
M Input/Output Pfad mit Leerzeichen convertieren in Kurzschreibweise (~1, ~2, etc)? Allgemeine Java-Themen 10
C JAR, Pfad und Properties Allgemeine Java-Themen 17
P Pfad zu Dateien von "Tragbaren Gerät" Allgemeine Java-Themen 3
F Pfad der laufenden JAR ermitteln (mit Archivnamen) Allgemeine Java-Themen 2
U DLLs werden nicht gefunden trotz Pfad: Allgemeine Java-Themen 4
G log4j File erzeugen und Pfad bestimmen Allgemeine Java-Themen 3
A File Java Pfad Allgemeine Java-Themen 5
D JavaEE-WebApp Pfad auslesen Allgemeine Java-Themen 3
M Pfad in int[][] finden Allgemeine Java-Themen 4
J Java Pfad nicht mehr in Path Variablen??? Allgemeine Java-Themen 2
C Environment Variable in Pfad -> Datei öffnen Allgemeine Java-Themen 5
M Relativer Pfad oder Dateien in Jar Allgemeine Java-Themen 7
S FileInputStream aplication Pfad Allgemeine Java-Themen 4
H Datei speichern -> Pfad erstellen? Allgemeine Java-Themen 1
T Pfad Anwendungsdaten unter Windows ermitteln Allgemeine Java-Themen 3
H2SO3- jar soll eigenen namen(pfad) finden Allgemeine Java-Themen 12
W HTML-Pfad Allgemeine Java-Themen 4
M Batch ausführen mit Leerzeichen im Pfad Allgemeine Java-Themen 7
C Applet: JFileChooser: PFad an HTML zürückgeben Allgemeine Java-Themen 4
MQue ClassLoader Pfad ausgeben Allgemeine Java-Themen 6
T Pfad aus Dateilesen -> wie diesen Pfad verwenden! Allgemeine Java-Themen 13
A Jar-File - Pfad Allgemeine Java-Themen 3
-horn- Kürzester Pfad: Code so eine gute Idee? Allgemeine Java-Themen 7
H absoluter Pfad ins working Directory Allgemeine Java-Themen 17
GambaJo Pfad zum Userprofil abhängig vom OS (/home Dok&Einst. us Allgemeine Java-Themen 3
R Wo ist der Pfad zur "Java(TM) Platform SE" Allgemeine Java-Themen 7
R Pfad zu PDF bei iText in Webapps Allgemeine Java-Themen 4
P Pfad der gerade ausgeführten Jar-Datei auslesen Allgemeine Java-Themen 2
R Entfernen der '..' Notation aus dem Pfad Allgemeine Java-Themen 2
T Java Applet PDF erstellen mit iText, Probleme mit Pfad Allgemeine Java-Themen 1
MasterEvil File.createTempFile liefert nur kurzen Pfad mit Tilde Allgemeine Java-Themen 3
T Wie bekomme ich den Pfad ohne Dateiname? Allgemeine Java-Themen 2
MQue Pfad splitten Allgemeine Java-Themen 2
P Pfad schließen xml Allgemeine Java-Themen 3
M Absoluter Pfad. Allgemeine Java-Themen 6
H Pfad einer Sounddatei von Soundkarte auslesen Allgemeine Java-Themen 15
G Problem Pfad zu wechseln Allgemeine Java-Themen 28
J Erkennen aus welchem Pfad das Jar gestartet wurde Allgemeine Java-Themen 6
S relativer Pfad? Allgemeine Java-Themen 18
S Relativen Pfad zu Pfad für File finden Allgemeine Java-Themen 4
G Problem mit Leerzeichen im Pfad bei File und getResouce Allgemeine Java-Themen 2
S Relativer Pfad in jsp Allgemeine Java-Themen 6
D Pfad ausfindig machen? Allgemeine Java-Themen 2
E Pfad angeben Allgemeine Java-Themen 5
M Den Pfad ermitteln aus dem die .jar Datei gestartet wurde Allgemeine Java-Themen 2
G ganze Pfad in einer Ordnerstruktur abbilden Allgemeine Java-Themen 19
G FileOpenDialog Pfad anlegen? Allgemeine Java-Themen 2
E in Pfad suchen Allgemeine Java-Themen 5
Q || Wie speichert man Dateien wo der Pfad als Link(UNIX)... Allgemeine Java-Themen 11
S Pfad Verwaltung Allgemeine Java-Themen 3
M Pfad zur Klasse ermitteln Allgemeine Java-Themen 2
L Pfad von Daten auf Server über FileChooseDialog Allgemeine Java-Themen 5
G absoluter pfad aus relativem Allgemeine Java-Themen 5
G Root-Pfad in einer Webapplikation finden Allgemeine Java-Themen 7
D Windows Pfad in UNC Pfad wandeln Allgemeine Java-Themen 4
G jar archiv und native klassen (pfad angabe) Allgemeine Java-Themen 2
P Leerzeichen im Pfad Allgemeine Java-Themen 8
I Pfad in einem String ändern Allgemeine Java-Themen 5
D Pfad zu meiner anwendung? Allgemeine Java-Themen 13
B relativer Pfad Allgemeine Java-Themen 18
J Pfad problem Allgemeine Java-Themen 14
D Jar-Datei-Pfad Allgemeine Java-Themen 2
welterde Pfad zur Jar-Datei Allgemeine Java-Themen 7
S Runtime exec unter MacOS X will nicht "open pfad" Allgemeine Java-Themen 7
M TreePath aus einem Pfad? Allgemeine Java-Themen 4
K Falscher Pfad beim Laden eines Bildes Allgemeine Java-Themen 9
G Servlets: Ganzer Pfad und Dateiname des verschickten Forms Allgemeine Java-Themen 15
G Wie komme ich an den Pfad zu meinem Programm? Allgemeine Java-Themen 2
thE_29 DOS pfad bekommen - die Tilde Allgemeine Java-Themen 1
A Pfad mit Leerzeichen über exec starten Allgemeine Java-Themen 6
G Relativer Pfad zu Pfad Allgemeine Java-Themen 2
H Pfad für [Ini/DB]-Datei Allgemeine Java-Themen 4
izoards Zugriff auf gemeinsame Ressource (CSV-File) Allgemeine Java-Themen 3
J Ausführbare Jar läd die Ressource nicht Allgemeine Java-Themen 3
kodela StatusBar-Anzeigen auch in Log-Datei ausgeben Allgemeine Java-Themen 3
G Maven Projekt JAR-Datei Allgemeine Java-Themen 6
E XML - Datei Darstellung in IntelliJ als Baum Allgemeine Java-Themen 2
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
D Erste Schritte Mp3 Datei kann nicht von der Festplatte geöffnet werden - mit ChatGPT erstellt Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben