Проверить, загружен ли файл jar? - PullRequest
4 голосов
/ 28 марта 2012

У меня есть собственный файл jar в папке lib / tomcat.Насколько мне известно, любой файл JAR в этой папке будет загружен при запуске.

Есть ли в любом случае я могу проверить, загружен ли конкретный файл JAR или нет?-6.0.35.A в unix rhel5.

Ответы [ 2 ]

17 голосов
/ 28 марта 2012

Я думаю, что видел, какие банки открываются при запуске в одном из файлов журнала Tomcat. Если бы не я, я мог бы подумать о двух возможных альтернативах:

  1. Добавьте -verbose:class к JAVA_OPTS в скрипте запуска Tomcat. Он должен печатать классы, так как они загружаются JVM (много выходных данных). Grep файл журнала (или stdout), чтобы найти, перечислены ли классы из вашего jar
  2. Используйте команду Linux lsof для просмотра файлов, открытых процессом Tomcat.
2 голосов
/ 28 марта 2012

Банки на самом деле не "загружаются при запуске". Но загрузчик системных классов Tomcat загружает классы из этих jar-файлов. Вы можете проверить, доступен ли какой-нибудь класс из банки:

  • , пытаясь загрузить этот класс из вашего кода, например getClass().getClassloader().loadClass(className)
  • , пытаясь загрузить класс как ресурс, например getClass().getResource("/" + className.replace('.', '/') + ".class")

Во втором случае у вас должно быть имя или файл JAR в URL, возвращаемом getResource().

...