Получение относительного пути
Примечание. Относительные пути (то есть без указания того, кому они относятся относительно в данный момент) можно получить следующими способами (будь то общий Java-проект или веб-проект)
String относительноPath=System.getProperty("user.dir");
В указанном выше относительном пути файлы в проекте Java относятся к корневому каталогу проекта.
Путь к файлу в веб-проекте различается в зависимости от разных веб-серверов (tomcat относится к каталогу установки tomcatbin).
Получение каталога загрузки второго класса (то есть получение каталога загрузки определенного класса при запуске)
1.1) Первый общий метод (будь то общий Java-проект или веб-проект, сначала найдите каталог первого уровня, где вы можете увидеть путь к пакету)
InputStream is=TestAction.class.getClassLoader().getResourceAsStream("test.txt");
(Путь к файлу test.txt — имя проектаsrctest.txt; каталог первого уровня пакета, в котором находится класс TestAction, находится в каталоге src)
В приведенной выше формуле просто замените TestAction и test.txt соответствующим именем класса и именем файла.
1.2) Общий второй метод (этот метод аналогичен методу 1.1, за исключением того, что этот метод должен начинаться с '/')
InputStream is=Test1.class.getResourceAsStream("/test.txt");
(Путь к файлу test.txt — имя проектаsrctest.txt, а каталог первого уровня пакета, в котором находится класс Test1, находится в каталоге src)
Получение корневого каталога трёх веб-проектов (после релиза)
1 Начиная с сервлета
Вы можете создать сервлет и написать следующий оператор в его методе инициализации.
ServletContext s1=this.getServletContext();
Строка temp=s1.getRealPath("/" (ключ)
Результат выглядит следующим образом: D:ToolsTomcat-6.0webapps 02_ext (002_ext — это имя проекта).
Если вызывается s1.getRealPath(""), выходные данные будут D:ToolsTomcat-6.0webapps 02_ext (на один "" меньше).
2 Начиная с httpServletRequest
String cp11111=request.getSession().getServletContext().getRealPath("/");
Результат выглядит так: D:ToolsTomcat-6.0webapps 02_ext
Получение четвертого пути к классам (в Eclipse получение пути к каталогу src или классов)
Метод 1 Thread.currentThread().getContextClassLoader().getResource("").getPath()
например: String t=Thread.currentThread().getContextClassLoader().getResource("").getPath();
System.out.println("t---"+t);
Вывод: t---/E:/order/002_ext/WebRoot/WEB-INF/classes/
Метод 2 JdomParse.class.getClassLoader().getResource("").getPath() (JdomParse — это класс в определенном пакете src, то же самое показано ниже)
например: String p1 = JdomParse.class.getClassLoader().getResource("").getPath();
System.out.println("JdomParse.class.getClassLoader().getResource--"+p1);
Вывод: JdomParse.class.getClassLoader().getResource --/E:/order/002_ext/WebRoot/WEB-INF/classes/
Кроме того, если вы хотите поместить файл в определенный пакет, вы можете получить его следующим способом (сначала найдите каталог последнего уровня пакета):
например String p2=JdomParse.class.getResource("").getPath();
System.out.println("JdomParse.class.getResource---"+p2);
Вывод: JdomParse.class.getResource---/E:/order/002_ext/WebRoot/WEB-INF/classes/jdom/ (JdomParse — это класс в пакете jdom в каталоге src)