Pfad bei Webprojekt in Eclipse herausfinden

Status
Nicht offen für weitere Antworten.

Korki

Mitglied
Hallo,

Folgendes Problem:
Ich habe ein Webprojekt in Eclipse erstellt und nun möchte ich Bilder aus dem WebContent in einer Java-Klasse prüfen, ob sie existieren.

Relative Pfade machen ja keinen Sinn "C:\eclipse\workspace...", wenn ich mal ein WAR-File daraus mache geht es nicht mehr.
Heißt ich müsste ja nur den Projektordner herausfinden damit ich den Rest fixieren kann, aber wie kriegt man den heraus? Beispiel:
/ProjektOrdner/"WebContent/images/"

Ich weiß, dass man über Servlets mit request.getContextPath() den Projektnamen erhält, aber ich möchte diesen eigentlich nicht in jede Klasse durchreichen müssen.

Gruß
 
Context bietet die Methode getResourceAsStream, mit java.io.File solltest du nicht arbeiten.
 
Könntest du mal ein kurzes Beispiel zeigen, wie du das jetzt genau meinst?

Struktur:
Projekt
- src
-source.java
- WebContent
- images
- datei.jpg

Von einem Servlet aus wird ein Aufruf an eine Java-Klasse weitergeleitet und dann?
Ich muss aus der source.java an die datei.jpg rankommen
 
Moin,

ich habe jetzt eine Lösung gefunden, ob die so richtig ist weiß ich nicht...
Vielleicht kann ja nochmal einer antworten, falls es die falsche bzw. eine bessere Lösung gibt

EineKlasse.class.getClassLoader().getResource("../WebContent/images/").getPath()
 
Sry ^^ hatte ich nicht ganz gesehen. Richtig wäre im Servlet folgendes:

Java:
getContext().getResource("images/...");
 
Schon besser 🙂

Aber was sollte man denn mir einer URL anstellen? (Nochmals: java.io.File ist böse)
Wie gesagt, getResourceAsStream wäre imho "richtiger".
 
Hast du schon recht, aber wenn er ja kontrollieren möchte, ob es ein Bild gibt, dass z.B. den Namen X hat, wäre das ja schon besser, als per getResourceAsStream() und dann eine Exception zu fangen, oder?
 
Hast du schon recht, aber wenn er ja kontrollieren möchte, ob es ein Bild gibt, dass z.B. den Namen X hat, wäre das ja schon besser, als per getResourceAsStream() und dann eine Exception zu fangen, oder?
Eine Nullpointerexception sollte man eig. nicht fangen, ausser um sie weiterzuwerfen, denn diese deuten meist auf Programmierfehler hin.
Eine Java WebApp soll als War Archiv ausgeliefert werden.
Laut Spek. darf man keine Annahmen darüber machen, ob dieses Archiv entpackt wird (bei manchen JEE Servern ist das sogar der Fall).
 
Ich denke, wenn er sein Problem nicht detaillierter beschreibt, kann man ihm auch sehr schlecht helfen.

Zu der Sache mit der NullPointerException und dem WAR bezüglich des entpackens:

Das ist mir bewusst und auch klar, ABER wenn er kontrollieren möchte ob es imageX.jpg in Verzeichnis CONTEXT/images/ gibt, dann hat er ja nur die Möglichkeit über:

context.getResource("images/imageX.jpg") oder context.getResourceAsStream("images/imageX.jpg") zu gehen.

Bei Weg 1 könnte der dann halt per File die Methode exists() aufrufen, und bei Weg 2 nur auf Null prüfen (Weshalb ich sagte: "... wäre das ja schon besser, als per getResourceAsStream() und dann eine Exception zu fangen ...")

Oder stehe ich gerade wieder auf dem Schlauch.
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben