Obtention d'un chemin relatif
Remarque : Les chemins relatifs (c'est-à-dire sans préciser à qui ils sont relatifs à ce moment-là) peuvent être obtenus des manières suivantes (qu'il s'agisse d'un projet Java général ou d'un projet Web)
String relativePath=System.getProperty("user.dir");
Dans le chemin relatif ci-dessus, les fichiers du projet Java sont relatifs au répertoire racine du projet
Le chemin du fichier dans le projet Web varie en fonction des différents serveurs Web (Tomcat est relatif au répertoire d'installation Tomcatbin)
Obtention du répertoire de chargement de la deuxième classe (c'est-à-dire obtenir le répertoire de chargement d'une certaine classe lors de l'exécution)
1.1) Première méthode générale (qu'il s'agisse d'un projet Java général ou d'un projet Web, localisez d'abord le répertoire de premier niveau où vous pouvez voir le chemin du package)
InputStream is=TestAction.class.getClassLoader().getResourceAsStream("test.txt");
(Le chemin du fichier test.txt est nom du projetsrctest.txt ; le répertoire de premier niveau du package où se trouve la classe TestAction se trouve sous le répertoire src)
Dans la formule ci-dessus, remplacez simplement TestAction et test.txt par le nom de classe et le nom de fichier correspondants.
1.2) Deuxième méthode générale (cette méthode est similaire à la méthode de 1.1, sauf que cette méthode doit commencer par '/')
InputStream is=Test1.class.getResourceAsStream("/test.txt");
(Le chemin du fichier test.txt est nom du projetsrctest.txt, et le répertoire de premier niveau du package où se trouve la classe Test1 se trouve sous le répertoire src)
Obtention du répertoire racine des trois projets web (après release)
1 À partir du servlet
Vous pouvez créer un servlet et écrire l'instruction suivante dans sa méthode init
ServletContext s1=this.getServletContext();
String temp=s1.getRealPath("/"); (clé)
Le résultat ressemble à : D:ToolsTomcat-6.0webapps 02_ext (002_ext est le nom du projet)
Si s1.getRealPath("") est appelé, le résultat est D:ToolsTomcat-6.0webapps 02_ext (un "") de moins
2 À partir de httpServletRequest
String cp11111=request.getSession().getServletContext().getRealPath("/");
Le résultat ressemble à : D:ToolsTomcat-6.0webapps 02_ext
Obtention du quatrième chemin de classe (dans Eclipse, obtention du chemin d'accès au répertoire src ou classes)
Méthode 1 Thread.currentThread().getContextClassLoader().getResource("").getPath()
Par exemple : String t=Thread.currentThread().getContextClassLoader().getResource("").getPath();
System.out.println("t---"+t);
Sortie :t---/E:/order/002_ext/WebRoot/WEB-INF/classes/
Méthode 2 JdomParse.class.getClassLoader().getResource("").getPath() (JdomParse est une classe dans un certain package de src, le même ci-dessous)
Par exemple : String p1=JdomParse.class.getClassLoader().getResource("").getPath();
System.out.println("JdomParse.class.getClassLoader().getResource--"+p1);
Sortie : JdomParse.class.getClassLoader().getResource--/E:/order/002_ext/WebRoot/WEB-INF/classes/
De plus, si vous souhaitez placer le fichier dans un certain package, vous pouvez obtenir le fichier de la manière suivante (localisez d'abord le répertoire de dernier niveau du package)
par exemple String p2=JdomParse.class.getResource("").getPath();
System.out.println("JdomParse.class.getResource---"+p2);
Sortie : JdomParse.class.getResource---/E:/order/002_ext/WebRoot/WEB-INF/classes/jdom/ (JdomParse est la classe du package jdom dans le répertoire src)