72 Stimmen

Prüfen Sie, ob eine Klasse im Java-Klassenpfad existiert, ohne ihren statischen Initialisierer auszuführen?

Wenn ich benutze

   try {
      Class.forName("my.package.Foo");
      // es existiert im Klassenpfad
   } catch(ClassNotFoundException e) {
      // es existiert nicht im Klassenpfad
   }

wird der statische Initialisierungsblock von "Foo" gestartet. Gibt es eine Möglichkeit festzustellen, ob eine Klasse "my.package.Foo" im Klassenpfad ist, ohne ihren statischen Initialisierer zu starten?

94voto

André Punkte 2273

Probieren Sie die forName(String name, boolean initialize, ClassLoader loader)-Methode von Class aus und setzen Sie den Parameter initialize auf false.

JavaDoc-Link

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X