Ermitteln eines relativen Pfads
Hinweis: Relative Pfade (d. h. ohne Angabe, zu wem sie zu diesem Zeitpunkt relativ sind) können auf folgende Weise abgerufen werden (unabhängig davon, ob es sich um ein allgemeines Java-Projekt oder ein Webprojekt handelt).
String relativePath=System.getProperty("user.dir");
Im obigen relativen Pfad sind die Dateien im Java-Projekt relativ zum Stammverzeichnis des Projekts
Der Dateipfad im Webprojekt variiert je nach Webserver (Tomcat ist relativ zum Tomcat-Installationsverzeichnisbin).
Abrufen des Ladeverzeichnisses der zweiten Klasse (dh Abrufen des Ladeverzeichnisses einer bestimmten Klasse beim Ausführen)
1.1) Allgemeine Methode eins (ob es sich um ein allgemeines Java-Projekt oder ein Webprojekt handelt, suchen Sie zuerst das Verzeichnis der ersten Ebene, in dem Sie den Paketpfad sehen können)
InputStream is=TestAction.class.getClassLoader().getResourceAsStream("test.txt");
(Der Pfad der Datei test.txt lautet Projektnamesrctest.txt; das Verzeichnis der ersten Ebene des Pakets, in dem sich die Klasse TestAction befindet, befindet sich im Verzeichnis src.)
Ersetzen Sie in der obigen Formel einfach TestAction und test.txt durch den entsprechenden Klassennamen und Dateinamen.
1.2) Allgemeine Methode zwei (diese Methode ähnelt der Methode in 1.1, außer dass diese Methode mit „/“ beginnen muss)
InputStream is=Test1.class.getResourceAsStream("/test.txt");
(Der Pfad der Datei test.txt lautet Projektnamesrctest.txt, und das Verzeichnis der ersten Ebene des Pakets, in dem sich die Klasse Test1 befindet, befindet sich im Verzeichnis src.)
Abrufen des Stammverzeichnisses der drei Webprojekte (nach der Veröffentlichung)
1 Ausgehend vom Servlet
Sie können ein Servlet erstellen und die folgende Anweisung in seine Init-Methode schreiben
ServletContext s1=this.getServletContext();
String temp=s1.getRealPath("/");
Das Ergebnis sieht so aus: D:ToolsTomcat-6.0webapps 02_ext (002_ext ist der Projektname)
Wenn s1.getRealPath("") aufgerufen wird, lautet die Ausgabe D:ToolsTomcat-6.0webapps 02_ext (ein „“ weniger).
2 Beginnend mit httpServletRequest
String cp11111=request.getSession().getServletContext().getRealPath("/");
Das Ergebnis sieht so aus: D:ToolsTomcat-6.0webapps 02_ext
Abrufen des vierten Klassenpfads (in Eclipse Abrufen des Pfads zum src- oder Klassenverzeichnis)
Methode 1 Thread.currentThread().getContextClassLoader().getResource("").getPath()
zB: String t=Thread.currentThread().getContextClassLoader().getResource("").getPath();
System.out.println("t---"+t);
Ausgabe:t---/E:/order/002_ext/WebRoot/WEB-INF/classes/
Methode 2 JdomParse.class.getClassLoader().getResource("").getPath() (JdomParse ist eine Klasse in einem bestimmten Paket von src, dasselbe unten)
zB:String p1=JdomParse.class.getClassLoader().getResource("").getPath();
System.out.println("JdomParse.class.getClassLoader().getResource--"+p1);
Ausgabe: JdomParse.class.getClassLoader().getResource--/E:/order/002_ext/WebRoot/WEB-INF/classes/
Wenn Sie die Datei außerdem in ein bestimmtes Paket einfügen möchten, können Sie die Datei wie folgt abrufen (suchen Sie zuerst das Verzeichnis der letzten Ebene des Pakets).
zB String p2=JdomParse.class.getResource("").getPath();
System.out.println("JdomParse.class.getResource---"+p2);
Ausgabe: JdomParse.class.getResource---/E:/order/002_ext/WebRoot/WEB-INF/classes/jdom/ (JdomParse ist die Klasse im jdom-Paket im src-Verzeichnis)