Thread.currentThread().getContextClassLoader().getResource(".") hat unterschiedliche Ergebnis auf windows und linux

Habe ich eine einfache Java-Klasse:

public class T {
    public static void main(String[] args) {
        System.err.println(Thread
              .currentThread()
              .getContextClassLoader()
              .getResource("."));
    }
}

Ausführen der oben genannten Klasse, die auf windows, die ich habe:

file:/T:/java/

Während es läuft auf Linux, ich habe einen anderen stuff:

jar:file:/usr/lib/jvm/java-6-openjdk-common/jre/lib/ext/pulse-java.jar!/

Dieses problem verursacht mein Programm nicht auf Linux, als Sie es nicht finden können die Dateien, die ich angegeben. Jede Idee, wie man Abhilfe?

was erwartest du "." zurückzukehren?
Der aktuelle Ordner wird beim starten des java-Programms. Eigentlich egal, was ich will, ist die Verwendung Thread.currentThread.getContextClassLoader().getResource("app.conf") um die app.conf - Datei. Es funktioniert auf windows, aber nicht unter Linux.
Habe zu lieben, die Dokumentation auf die Methode "Der name einer Ressource ist ein '/'getrennt den Pfad-Namen ein, gibt die Ressource an." Also name ist eine Zeichenfolge, die kann oder kann nicht haben ' / ' - Zeichen.
Das aktuelle Verzeichnis? Warum nicht einfach File. Ressource ist, über dem laden "Dateien", die sind Teil des Programms. In der Produktion Bereitstellungen, wird das aktuelle Arbeitsverzeichnis ist unwahrscheinlich, dass im classpath (vielleicht).
Classic XY-problem. Bitte Bearbeiten Sie Ihre Frage mit dem Inhalt deines letzten Kommentars, so wie anscheinend in Ihrem ist Ziel.

InformationsquelleAutor Gelin Luo | 2013-05-01

Schreibe einen Kommentar