# Wie Projekt-Ordner-Pfad ermitteln?



## HobbyProgger (19. Mai 2010)

Hallo, ich brächte wieder mal eure Hilfe:

Wie ermittelt man den Pfad des Projektordners bei einem Eclipse-Plugin-Projekt?
(Also *System.getProperty("user.dir")* geht nicht - es liefert mir nur das Verzeichnis der eclipse.exe)

Vielen Dank!


----------



## Java-Freak (19. Mai 2010)

das thema hatte wir schon öfters... z.b.
http://www.java-forum.org/java-basi...4-aktueller-pfad-programms-jar-ermitteln.html


----------



## mabuhay (19. Mai 2010)

oder hier: http://www.java-forum.org/allgemeine-java-themen/99655-speichern-einstellungen.html


----------



## HobbyProgger (20. Mai 2010)

Gut, danke!


----------



## HobbyProgger (20. Mai 2010)

Für die Einstallungen habe ich folgenden Vorschlag verwendet:

```
String configPath = System.getenv("APPDATA");
if (configPath == null) {
    configPath = System.getProperty("user.home");
}
```

Nun möchte ich allerdings auch noch ein paar Ressourcen laden, welche sich natürlich im Projektverzeichnis befinden. (im Ordner "res" in der Projekt-Wurzel liegend).

Dazu geben beide Themen-Stränge kaum Lösungen vor. Ein "Michael..." erwähnte etwas von einer Batch-Datei, um den ClassPath auf die Dateien zu setzen, gab aber leider keinerlei Informationen dazu, wie diese auszusehen hat.

Kann mir hier jemand einen Tipp für meine spezifische Anforderung geben?


----------



## maki (20. Mai 2010)

> Nun möchte ich allerdings auch noch ein paar Ressourcen laden, welche sich natürlich im Projektverzeichnis befinden. (im Ordner "res" in der Projekt-Wurzel liegend).


Kannst du vergessen, falls du denkst du könntest die Ressourcen als File laden, und nicht nur bei OSGi, sondern bei allem was als Jar ausgeliefert wird.

Empfehlenswerte Lektüre: Smartly load your properties - JavaWorld


----------



## mabuhay (20. Mai 2010)

Werden die Resourcen mit der jar ausgeliefert? Dann Leg sie ins Projektverzeichnis (z.B. /resource/image.png) und füge sie in Eclipse dem Build-Path hinzu (Rechtsklich auf den Ordner -> Build Path -> Use as source folder). Du kannst den Pfad auf die Resource dann folgendermassen ermitteln: 

```
Class.getClass().getResource("/resource/image.png")
```

Falls die Resourcen aber vom Benutzer irgendwo abgelegt werden, lass den Benutzer einfach den Pfad wählen und Speichere diesen evtl. in den Einstellungen damit der Benutzer nicht immer neu wählen muss.

mfg


----------



## HobbyProgger (21. Mai 2010)

mabuhay hat gesagt.:


> Werden die Resourcen mit der jar ausgeliefert?


Im Prinzip ja, aber es handelt sich nicht um eine jar, sondern um ein Eclipse-Plugin.
Hier sollte ja eigentlich der Build-Path nicht verändert werden...


----------



## HobbyProgger (21. Mai 2010)

```
Class.getClass().getResource("/resource/image.png")
```
Ich habe dies jetzt totzdem mal bei einem normalen Java-Projekt getestet. Wie wird dies dort angewendet?
Mir wird der Type URL als Rückgabewert vorgeschlagen, allerdings wird dann immer noch ein Fehler angekreidet...

Nur wenn ich

```
this.getClass().getResource("/resource/image.png")
```
verwende, verschwindet dieser. - In diesem Fall darf die Methode dann allerdings nicht mehr statisch sein.


----------



## HobbyProgger (22. Mai 2010)

Hat denn keiner eine Erklärung?


----------



## maki (22. Mai 2010)

Steht doch in der JavaDoc (und in deiner Fehlermeldung), getClass ist nicht static.


----------



## mabuhay (22. Mai 2010)

HobbyProgger hat gesagt.:


> ```
> Class.getClass().getResource("/resource/image.png")
> ```



Ja sorry, das "Class" ist natürlich deine Klasse (oder eben "this").


----------

