Heim  >  Artikel  >  Java  >  Rufen Sie den JAVA-Pfad ab, einschließlich einer ausführlichen Erläuterung der Pfade außerhalb von CLASSPATH

Rufen Sie den JAVA-Pfad ab, einschließlich einer ausführlichen Erläuterung der Pfade außerhalb von CLASSPATH

Y2J
Y2JOriginal
2017-04-27 09:23:131828Durchsuche

Dieser Artikel ist eine detaillierte Analyse und Einführung in die Methode zum Erhalten des JAVA-Pfads, einschließlich anderer Pfade als CLASSPATH. Freunde in Not können sich auf

beziehen, um einige Methoden zum Erhalten des JAVA-Pfads zusammenzufassen online:
Hinweis: Wenn Sie das Programm über ANT starten, ist die Ausgabe von this.getClass().getResource("") seltsam. Sie können es direkt mit der JAVA-Befehlszeile erfolgreich debuggen.
Einige Methoden zum Abrufen des Klassenpfads und des absoluten Pfads der aktuellen Klasse
Methoden zum Abrufen des Pfads außerhalb von CLASSPATH:

URL base = this.getClass().getResource(""); //先获得本类的所在位置,如/home/popeye/testjava/build/classes/net/ String path = new File(base.getFile(), "……/……/……/"+name).getCanonicalPath(); //就可以得到/home/popeye/testjava/name

Im Folgenden sind einige aufgeführt Methoden zum Abrufen des Klassenpfads und der aktuellen Klasse. Einige Methoden für absolute Klassenpfade. Möglicherweise müssen Sie einige dieser Methoden verwenden, um den absoluten Pfad zu der benötigten Ressource zu ermitteln.

1.FileTest.class.getResource("")

Zum Beispiel: file:/D:/java/eclipse32/workspace/jbpmtest3/bin/com/test/

2.FileTest.class.getResource("/")

Was Sie bekommen ist der aktuelle absolute URI-Pfad des Klassenpfads.
Zum Beispiel: file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

3.Thread.currentThread().getContextClassLoader().getResource("")

Der erhaltene Wert ist auch der absolute URI-Pfad des aktuellen ClassPath.
Zum Beispiel: file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

4.FileTest.class.getClassLoader().getResource("")

Der erhaltene Wert ist auch der absolute URI-Pfad des aktuellen ClassPath.
Zum Beispiel: file:/D:/java/eclipse32/workspace/jbpmtest3/bin/

5.ClassLoader.getSystemResource("")

Der erhaltene Wert ist auch der absolute URI-Pfad des aktuellen ClassPath.
Zum Beispiel: file:/D:/java/eclipse32/workspace/jbpmtest3/bin/
Ich empfehle die Verwendung von Thread.currentThread().getContextClassLoader().getResource(""), um den absoluten Pfad des zu erhalten aktuelle Klassenpfad-URI-Notation.
In Webanwendungen erhalten wir im Allgemeinen den absoluten Pfad des Stammverzeichnisses der Webanwendung über die Methode ServletContext.getRealPath ("/"). Auf diese Weise müssen wir nur den Pfad relativ zum Stammverzeichnis der Webanwendung angeben, um einen absoluten Pfad zum Auffinden der Ressource zu erstellen.
Hinweise:
1. Versuchen Sie, keine relativen Pfade relativ zum aktuellen Benutzerverzeichnis von System.getProperty („user.dir“) zu verwenden. Dies ist eine tickende Zeitbombe, die Sie jederzeit töten könnte.
2. Versuchen Sie, absolute Pfadressourcen in Form von URI zu verwenden. Es kann problemlos in URI-, URL- und Dateiobjekte konvertiert werden.
3. Versuchen Sie, relative Pfade relativ zum Klassenpfad zu verwenden. Verwenden Sie keine absoluten Pfade. Mit der öffentlichen statischen URL-Methode getExtendResource(String relativePath) der Klasse ClassLoaderUtil oben können Sie bereits Ressourcen an allen Standorten finden, indem Sie relative Pfade relativ zum Klassenpfad verwenden.
4. Verwenden Sie niemals fest codierte absolute Pfade. Denn wir können die Methode getResource("") der ClassLoader-Klasse verwenden, um den absoluten Pfad des aktuellen Klassenpfads abzurufen.
Die Verwendung fest codierter absoluter Pfade ist völlig unnötig! Es wird deinen Tod auf jeden Fall hässlich aussehen lassen! Das Programm ist nicht portierbar!
Wenn Sie einen absoluten Pfad angeben müssen, ist die Verwendung einer Konfigurationsdatei viel besser als eine Hardcodierung!
Natürlich empfehle ich trotzdem, dass Sie ein Programm verwenden, um den absoluten Pfad des Klassenpfads zu ermitteln und so den absoluten Pfad der Ressource zu buchstabieren

Das obige ist der detaillierte Inhalt vonRufen Sie den JAVA-Pfad ab, einschließlich einer ausführlichen Erläuterung der Pfade außerhalb von CLASSPATH. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn