Поиск пути к классу веб-приложения - PullRequest
4 голосов
/ 04 июля 2011

Когда я работаю над своим веб-приложением в Eclipse, я могу искать все классы и файлы JAR с помощью

String cp = System.getProperty("java.class.path");

, но при развертывании на Tomcat или Jetty я ничего не получаю.

Я хочу найти все *.properties файлы, которые находятся в веб-приложении (либо в JAR-файле, либо, если оно было взорвано, в папках).

String cp = System.getProperty("java.class.path");
String pathSep = File.pathSeparator;
String[] jarOrDirectories = cp.split(pathSep);
for (String fileName : jarOrDirectories) {
        File file = new File(fileName);
        if (file.isFile()) {
                logger.debug("From jar "+file.getName());
                loadFromJar(file.getPath());
        } else {
                logger.debug("From folder "+file.getName());
                listFolder(file);
        }
}

Таким образом, запуск веб-приложения в Eclipseдает мне все файлы JAR и все папки классов, но не при развертывании приложения в Tomcat.

Было бы достаточно, если бы я мог просто получить путь к WEB_INF.Оттуда это легко.

1 Ответ

7 голосов
/ 05 июля 2011

Если кому-то нужен ответ, я нашел очень очевидный ответ.

getServletContext().getRealPath("/WEB-INF")

Тогда, когда вы получите реальный путь, вы можете легко искать по папкам и JAR-файлам.

...