package com;
class Candy{
static{
System.out.println("loading candy");
}
}
class Gum{
static {
System.out.println("loading gum");
}
}
class Cookie{
static{
System.out.println("loading cookie");
}
}public class Test2 {
public static void main(String []args){
System.out.println("main method ");
new Candy();
try {
Class.forName("Gum");
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
new Cookie();
}
输出应该没有异常,为什么输出会产生异常?

解决方案 »

  1.   

    这样修改即可:
    Class.forName( "包名.Gum "); 
      

  2.   

    main method 
    java.lang.ClassNotFoundException: Gum
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200)loading candy 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.Test2.main(Test2.java:23)
    loading cookie
      

  3.   

    谢谢agan22!!!问题已经解决  也谢谢各位的帮助  我衷心的谢谢每个热心人!
      

  4.   

    Class.forName("具体路径");