Controleer of klasse bestaat in Java-klassenpad zonder de statische initialisatiefunctie uit te voeren?

Als ik gebruik

  try {
      Class.forName("my.package.Foo");
      // it exists on the classpath
   } catch(ClassNotFoundException e) {
      // it does not exist on the classpath
   }

het statische initialisatieblok van “Foo” wordt gestart. Is er een manier om te bepalen of een klasse “my.package.Foo” zich op het klassenpad bevindt zonder de statische initialisatie te starten?


Antwoord 1, autoriteit 100%

Probeer de forName(String name, boolean initialize, ClassLoader loader)methode van Classen stel de parameter initializein op false.

JavaDoc-link

Other episodes