Heim  >  Artikel  >  Java  >  Detaillierte Erläuterung der Java-Ressourcenpfadanordnung

Detaillierte Erläuterung der Java-Ressourcenpfadanordnung

黄舟
黄舟Original
2017-03-17 10:22:192220Durchsuche

In diesem Artikel werden hauptsächlich relevante Informationen zur Pfadsortierung und -zusammenfassung von Java Ressourcen vorgestellt. Freunde in Not können sich auf

Java-Ressourcenpfade

Zuallererst ist es sehr wichtig, dass es in Java keinen relativen Standardpfad gibt, um Ressourcen nach bestimmten Regeln zu erhalten.


Dann ist es auch sehr wichtig, absolut Verwenden Sie absolute Pfade nicht direkt, sonst wird es hässlich


Basierend auf den beiden oben genannten Punkten kann das Problem des Ressourcenpfads in einem Punkt zusammengefasst werden: Finden Sie den Basispunkt, d. h. Suchen Sie in einer bestimmten Umgebung (Web, J2EE oder JAR-Paket usw.) mit einer geeigneten Methode einen stabilen Basispunkt und finden Sie dann über diesen Basispunkt die gewünschte Ressource.


Was sind die Basispunkte? in Java? Grob zusammengefasst gibt es Folgendes:


1) Klassenpfad


Wenn sich die gesuchte Ressource unter dem Klassenpfad befindet, ist es sinnvoller, den zu verwenden Klassenpfad als Basispunkt, und der Hauptweg, diesen Basispunkt zu erhalten, ist über ClassLoader. Die spezifische Methode ist ClassLoader.getResource(

String Name). Es gibt viele Möglichkeiten, ClassLoader zu erhalten, wie zum Beispiel:

  1. Thread.currentThread().getContextClassLoader()

  2. clazz.getClassLoader()

  3. ClassLoader.getSystemClassLoader()


Das Implementierungsprinzip von ClassLoader zum Finden von Ressourcen besteht darin, zuerst Ressourcen

rekursiv aus dem Klassenpfad im übergeordneten ClassLoader zu laden (wie Das Laden des JDK ist letztendlich kein Open Source. Wenn nicht alle Ebenen von ClassLoadern gefunden werden, rufen Sie die Methode findResource auf, um sie zu finden. Diese Methode wird dem selbst erstellten ClassLoader zur Implementierung zugänglich gemacht und bietet so die Möglichkeit dazu Laden Sie Ressourcen außerhalb des Klassenpfads.

2) Das aktuelle Benutzerverzeichnis


ist der Pfad, der relativ zu System.getProperty("user.dir" ) zurückgegeben wird. Bei allgemeinen Projekten ist dies der Stammpfad des Projekts. Bei JavaEE-Servern kann dies ein Pfad zum Server sein. Es gibt hierfür keinen einheitlichen Standard! Standardmäßig analysieren Klassen im java.io-Paket jedoch immer relative Pfadnamen basierend auf dem aktuellen Benutzerverzeichnis, z. B. new File("xxx"), was bedeutet, dass xxx unter System.getProperty("user.dir") gefunden wird. Pfad. Dokument. Daher kann das Auffinden von Dateien auf diese Weise zu Portierungsproblemen führen.


3) Das Stammverzeichnis der Webanwendung


In einer Webanwendung erhalten wir das Stammverzeichnis der Webanwendung im Allgemeinen über ServletContext.getRealPath("/ ")-Methode Der absolute Pfad zum Verzeichnis.

Nachdem Sie die oben genannten grundlegenden Punkte gemeistert haben, können Sie die gesuchte Ressource leicht finden. Sie müssen sich jedoch darüber im Klaren sein, dass Sie nicht nur nach vorübergehendem Glück streben sollten, unabhängig von Leben und Tod zukünftiger Transplantationen Es muss sichergestellt sein, dass es in jeder Umgebung verwendet werden kann. Es gibt kein Problem beim Herunterladen (j2se oder Web, Windows oder

Linux).

Das obige ist der detaillierte Inhalt vonDetaillierte Erläuterung der Java-Ressourcenpfadanordnung. 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