Eclipse Richtige Pfadangabe zu gewünschtem Ordner

Heady86

Bekanntes Mitglied
Hallo zusammen,

ich scheiter grad irgendwie an der Pfadangabe in Eclipse zu einer bestimmten Ordnerstruktur.

Ich habe folgende Ordnerstruktur:
de.test.blubb
- src/main/java
- src/main/resources
- src/test/java
- src/test/resources

Nun möchte ich aus meiner Java Klasse die unter "src/main/java" liegt auf eine Datei zugreifen (xml) die unter "src/test/resources" liegt..

Kann mir jemand sagen wie da der Pfad aussehen müsste, ohne den kompletten Verzeichnispfad anzugeben?

Vielen Dank für Tipps

Grüße
 

VfL_Freak

Top Contributor
Moin,

wenn ich es richtig verstanden habe, dann möchtest Du den Pfad relativ zum aktuellen Verzeichnis "src/main/java" anwählen, oder ??

Das wäre dann wohl : "../../test/resources"

Gruß
Klaus
 
Zuletzt bearbeitet von einem Moderator:

mvitz

Top Contributor
Möchtest du in der Datei nur lesen oder auch schreiben?

Wenn du nur lesen möchtest hoffe ich, dass du die Datei folgendermaßen lädst:

Java:
getClass().getClassloader().getResourceAsStream(...)

Dann reicht es einfach, wenn src/main/resources im Classpath ist (was, da deine Struktur nach maven2 aussieht, automatisch so sein könnte).
 
M

maki

Gast
Anscheinend benutzt der TS Maven2, da ist der Tipp mit "../../test/resources" leider nicht richtig.

Alles was unter src/test/resoruces liegt wird in den CP eingebunden, nach dem Bauen, also in Jar Form, gibt es kein src/.. mehr.

Falls es sich wirklich um Maven2 handelt, sollte man auch keine Projektstruktur kaputt machen, ähh.. "anpassen".
 

Heady86

Bekanntes Mitglied
Falls es sich wirklich um Maven2 handelt, sollte man auch keine Projektstruktur kaputt machen, ähh.. "anpassen".

Hab an der Struktur an sich nichts geändert, hab nur einen unterordner vergessen anzugeben. :)
Und ja, ist ein Maven Projekt..

Danke
 
M

maki

Gast
Und ja, ist ein Maven Projekt..
Wie gesagt, dann ist es falsch was du machst ;)

Was hast du denn vor?
mvitz Frage ob du nur lesen möchtest oder auch schreiben ist wichtig.
Kurz: Wenn du nur lesen möchtest, dann befolge mvitz Rat, denn der ist richtig.
Wenn du schreiben möchtest, ist grundsätzlich was falsch.
 

Heady86

Bekanntes Mitglied
Was hast du denn vor? [..]

EIn XML soll Schritt für Schritt geparsed werden und die einzelnen Element rausziehen. Moment ist das in etwa so:

Java:
Document doc = SaxBuilder.build(>Pfad zur Datei<);

und dann geh ich die Elemente des XML durch..

Java:
doc.getRootElement().getChild()...

Kurz: Wenn du nur lesen möchtest, dann befolge mvitz Rat, denn der ist richtig.
Gibts vllt noch ne gratis Erklärung dazu? :oops: ;)

Danke..Grüße
 

mvitz

Top Contributor
Klar. Das XML File halt über den Classpath laden und dann verarbeiten.

Struktur des Projektes:

Code:
Root
 |- src/main/java
 |                 `- de.test.MainXmlParser
 `- src/main/resources
                     `- test.xml

Dann kannst du in MainXmlParser folgendermaßen das XML parsen:

Java:
...
  public static void main(String[] args) {
    InputStream in = MainXmlParser.class.getClassloader().getResourceAsStream("test.xml");
    Document doc = SaxBuilder.build(in);
    ...
  }
...

Dann musst du dich um eine Ordnerstruktur nicht mehr kümmern. Anstatt von test.xml geht auch meinOrdner/test.xml usw. aber dann halt relativ zum Classpath.
 

Heady86

Bekanntes Mitglied
Ah, jetzt wirds klar.. getResource() kuckt standardmäßig im classpath, wusst ich bisher auch nicht.

Vielen Dank für die Antworten
 

Neue Themen


Oben