Obtener una ruta relativa
Nota: Las rutas relativas (es decir, sin especificar con quién son relativas en ese momento) se pueden obtener de las siguientes maneras (ya sea un proyecto Java general o un proyecto web)
String relativamentePath=System.getProperty("user.dir");
En la ruta relativa anterior, los archivos del proyecto Java son relativos al directorio raíz del proyecto.
La ruta del archivo en el proyecto web varía según los diferentes servidores web (tomcat es relativo al directorio de instalación de tomcatbin)
Obtener el directorio de carga de la segunda clase (es decir, obtener el directorio de carga de una determinada clase cuando se ejecuta)
1.1) Método general uno (ya sea un proyecto Java general o un proyecto web, primero ubique el directorio de primer nivel donde puede ver la ruta del paquete)
InputStream es=TestAction.class.getClassLoader().getResourceAsStream("test.txt");
(La ruta del archivo test.txt es nombre del proyectosrctest.txt; el directorio de primer nivel del paquete donde se encuentra la clase TestAction está en el directorio src)
En la fórmula anterior, simplemente reemplace TestAction y test.txt con el nombre de clase y el nombre de archivo correspondientes.
1.2) Método general dos (este método es similar al método en 1.1, excepto que este método debe comenzar con '/')
InputStream es=Test1.class.getResourceAsStream("/test.txt");
(La ruta del archivo test.txt es nombre del proyecto srctest.txt, y el directorio de primer nivel del paquete donde se encuentra la clase Test1 está en el directorio src)
Obtención del directorio raíz de los tres proyectos web (después del lanzamiento)
1 A partir del servlet
Puede crear un servlet y escribir la siguiente declaración en su método init
ServletContext s1=this.getServletContext();
Cadena temp=s1.getRealPath("/");
El resultado es similar a: D:ToolsTomcat-6.0webapps 02_ext (002_ext es el nombre del proyecto)
Si se llama a s1.getRealPath(""), la salida es D:ToolsTomcat-6.0webapps 02_ext (uno menos "")
2 A partir de httpServletRequest
Cadena cp11111=request.getSession().getServletContext().getRealPath("/");
El resultado es similar a: D:ToolsTomcat-6.0webapps 02_ext
Obtención del cuarto classpath (en Eclipse, obtención de la ruta al directorio src o clases)
Método 1 Thread.currentThread().getContextClassLoader().getResource("").getPath()
por ejemplo: String t=Thread.currentThread().getContextClassLoader().getResource("").getPath();
System.out.println("t---"+t);
Salida:t---/E:/order/002_ext/WebRoot/WEB-INF/classes/
Método 2 JdomParse.class.getClassLoader().getResource("").getPath() (JdomParse es una clase en un determinado paquete de src, lo mismo a continuación)
por ejemplo:String p1=JdomParse.class.getClassLoader().getResource("").getPath();
System.out.println("JdomParse.class.getClassLoader().getResource--"+p1);
Salida: JdomParse.class.getClassLoader().getResource--/E:/order/002_ext/WebRoot/WEB-INF/classes/
Además, si desea colocar el archivo en un paquete determinado, puede obtener el archivo de la siguiente manera (primero ubique el directorio de último nivel del paquete)
por ejemplo, String p2=JdomParse.class.getResource("").getPath();
System.out.println("JdomParse.class.getResource---"+p2);
Salida: JdomParse.class.getResource---/E:/order/002_ext/WebRoot/WEB-INF/classes/jdom/ (JdomParse es la clase en el paquete jdom en el directorio src)