# System.getProperty("user.dir")



## PollerJava (12. Jul 2007)

Hallo,

ich kann mir einen Fehler überhaupt nicht erklären und da diesen Fehler schon mehrere hatten,habe ich dazu diesen Thread noch einmal aufgemacht.
ich habe in meinem Programm untere zeile eingefügt, um den Pfad zu einer Datei zu erhalten, Ich arbeite mit Netbeans und da funktioniert das wunderbar, nur wenn ich jetzt hergehe und das ganze in der Konsole starte über eine *.jar- Datei , dann wird die Datei KonfigComponents.xml nicht gefunden,

Gebe ich den Pfad absolut ein, funktioniert das ganze auch über die Konsole nur mit  System.getProperty("user.dir")  gehts über die Konsole nicht.

Wie kann das sein bzw. hat jemand ein Erklärung?
(ich bekomme in der Konsole eine FileIOException, der Pfad mit System.getProperty("user.dir") wird aber genau richtig ausgegeben)


```
(System.getProperty("user.dir") + "\\Konfiguration\\KonfigComponents.xml"
```


----------



## Murray (12. Jul 2007)

Versuch es in beiden Umgebungen mal mit

```
File fil = new File( System.getProperty("user.dir") + "\\Konfiguration\\KonfigComponents.xml");
System.out.println( "absolutePath: " + fil.getAbsolutePath());
System.out.println( "exists: " + fil.exists());
System.out.println( "canRead: " + fil.canRead());
```

Irgendwie werden sich die Ausgaben wohl unterscheiden.

/EDIT: Typos


----------



## loadbrain (12. Jul 2007)

Und jetzt ganz dreckig auf die Schnelle:
Wenn Du jetzt sowas machst:


```
StringBuffer sb = new StringBuffer();
   InputStream is = DerNameDeinerKlasse.class.getResourceAsStream( "/Konfiguration/KonfigComponents.xml" );
// 
// bzw: this.getClass().getResourceAsStream( "/ressources/b.txt" ); wenn nicht direkt in main

            while (true)
            {
                int c = 0;
                try
                {
                    c = is.read();
                    
                } catch (IOException ex)
                {
                    ex.printStackTrace();
                }
                if (c == -1)
                {
                    break;
                }
                sb.append((char)c);
            }
            try
            {
                is.close();
            } catch (IOException ex)
            {
                ex.printStackTrace();
            }
            System.out.println(sb.toString());
```

dann geht es sowohl in NetBeans wie aus dem dist Ordner per klick oder konsole.


----------



## PollerJava (13. Jul 2007)

Ich habe die Zeilen von Murray ausprobiert und es ist genau haarscharf der gleiche Pfad, ich versteh das überhaupt nicht



```
private Vector readStates(String xmlFile) throws JDOMException, IOException 
	{		
	SAXBuilder builder = new SAXBuilder();	
	doc = builder.build(xmlFile);   // hier brauche ich eben den String und kann daher mit den InputStream  nichts anfangen
```


----------



## PollerJava (13. Jul 2007)

Bekomme ich eigentlich aus der Zeile den Pfad irgendwie heraus, wo zugegriffen wird:




```
InputStream is = Control.class.getResourceAsStream( "/Konfiguration/KonfigComponents.xml" );
```


----------



## loadbrain (13. Jul 2007)

Habe ich in dem anderen Thread doch schon gesagt.
/Konfiguration/KonfigComponents.xml liegt direkt in /src 
Beim Erstellen wird es mit in das jar gepackt. Geh mal in den build/classes Ordner, da kannst Du sehen, wie das liegt.


----------



## PollerJava (13. Jul 2007)

ja aber ich brauche unbedingt einen String als Pfad, sonst kann ichmeine Methode nicht aufrufen und umschreiben will ich diese auch nicht unbedingt.

lg


----------



## loadbrain (13. Jul 2007)

Es gibtg auch
URL getResource(String name)
und das dann in string umwandeln, vielleicht hilft dir das


----------



## thE_29 (13. Jul 2007)

Du greifst so drauf zu in netbeans?

Control.class.getResourceAsStream( "/Konfiguration/KonfigComponents.xml" );


Und wunderst dich warum System.getProperty("user.dir") nicht klappt?!

Das ist nicht dein Ernst oder? Wenn du das im Jar File hast und im gleichen Verzeichnis sind das 2 verschiedene paar Schuhe!

Es wäre mal interessant zu wissen was du vor hast! Wo soll das xml liegen? Im gleichen Verzeichnis? Im Jar File, etc!


----------



## loadbrain (13. Jul 2007)

@thE_29: Du sagst es, ich werde auch nicht ganz schlau draus...


----------



## PollerJava (13. Jul 2007)

ich hab verstanden, ich bin ja da ganz wo anders!!!

OK, vielen DANK für die Geduld und Hilfe!!!!

lg


----------

