Check if class exists in Java classpath without running its static initializer?

Epaga picture Epaga · Aug 12, 2010 · Viewed 28.5k times · Source

If I use

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

the static initializer block of "Foo" is kicked off. Is there a way to determine whether a class "my.package.Foo" is on the classpath without kicking off its static initializer?

Answer

André picture André · Aug 12, 2010

Try the forName(String name, boolean initialize, ClassLoader loader) method of Class and set the param initialize to false.

JavaDoc link