2012-03-28 23 views
3

Ich habe eine benutzerdefinierte JAR-Datei im Ordner tomcat lib /. Nach meinem Wissen wird jede JAR-Datei in diesem Ordner beim Start geladen.Überprüfen, ob die JAR-Datei geladen ist?

Gibt es trotzdem ich kann überprüfen, ob eine bestimmte JAR-Datei geladen ist oder nicht?

Ich verwende Tomcat-6.0.35.A auf Unix Rhel5.

Antwort

14

Ich glaube, ich habe gesehen, welche Gläser beim Start in einer der Tomcat-Protokolldateien geöffnet sind. Wenn nicht könnte ich über zwei mögliche Alternativen:

  • hinzufügen -verbose: class zu JAVA_OPTS in Startskript Tomcat. Es sollte Klassen drucken, wie sie von JVM geladen werden (viele Ausgaben). Grep Protokolldatei (oder stdout) zu finden, wenn Klassen von Ihrem jar
  • Verwenden Linux lsof Befehl aufgelistet werden, fo siehe Dateien geöffnet von Tomcat-Prozess
+0

'lsof' hat meine Frage beantwortet. Es half mir zu sehen, ob das Glas verwendet wurde oder nicht. Vielen Dank. – latestVersion

2

Gläser sind nicht wirklich „geladen beim Start“. Aber der Systemklassenlader von Tomcat lädt Klassen aus diesen Jars. Sie können überprüfen, ob eine Klasse aus dem Jar verfügbar ist:

  • , indem Sie versuchen, diese Klasse aus Ihrem Code zu laden, z. getClass().getClassloader().loadClass(className)
  • indem versucht wird, die Klasse als eine Ressource zu laden, , z.B. getClass().getResource("/" + className.replace('.', '/') + ".class")
  • Im zweiten Fall sollten Sie Name oder Ihre JAR-Datei in der URL von getResource() zurückgegeben haben.

    Verwandte Themen