By Alvin Alexander. Last updated: October 30, 2017
Java Exception FAQ: What is a ClassNotFoundException?
Answer: A ClassNotFoundException can happen when you use Java's Reflection capability to dynamically create a class. Here's some example code where I intentionally throw a ClassNotFoundException
by trying to create and use a class ("FooClass") that I know doesn't exist:
package com.devdaily.javasamples; import java.lang.reflect.Method; public class JavaReflectionExample1 { public JavaReflectionExample1() { Class c; try { c = Class.forName("FooClass"); Method m[] = c.getDeclaredMethods(); System.out.println(m[0].toString()); } catch (ClassNotFoundException e) { // deal with the exception here ... e.printStackTrace(); } } public static void main(String[] args) { new JavaReflectionExample1(); } }
Because that class doesn't exist, when I try to run this program I get the following Java error message (stack trace):
java.lang.ClassNotFoundException: FooClass at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:164) at com.devdaily.javasamples.JavaReflectionExample1.(JavaReflectionExample1.java:13) at com.devdaily.javasamples.JavaReflectionExample1.main(JavaReflectionExample1.java:26)