写了一个小段代码
package com.wrox.utilities;public class test1{
    public test1() {
}
public static void main(String[] args) {
System.out.println("afasfdasfsadgsa");
}
}
然后用ant编译以后在D:\begjsp\WEB-INF\classes\com\wrox\utilities下生成一个test1.class文件,然后运行这个class文件报错
Exception in thread "main" java.lang.NoClassDefFoundError: test1 (wrong name: co
m/wrox/utilities/test1)
        at java.lang.ClassLoader.defineClass0(Native Method)
        at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
        at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:12
3)
        at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
        at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
        at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
        at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
        at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
        at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)但是如果我将这个java文件放在c盘根目,编译,运行就是好的,请问是什么原因导致这个错误,谢谢!~

解决方案 »

  1.   

    classpath = .;C:\j2sdk1.4.2_11\lib\tools.jar;C:\j2sdk1.4.2_11\lib\dt.jar;C:\Program Files\Apache Software Foundation\Tomcat 5.5\common\lib\servlet-api.jarJAVA_HOME = C:\j2sdk1.4.2_11path = C:\j2sdk1.4.2_11\bin;D:\oracle\ora92\bin;C:\Program Files\Oracle\jre\1.3.1\bin;C:\Program Files\Oracle\jre\1.1.8\bin;C:\j2sdk1.4.2_11\bin;%ANT_HOME%\bin;C:\PROGRAM FILES\THINKPAD\UTILITIES;%SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Program Files\ATI Technologies\ATI Control Panel;C:\Program Files\PC-Doctor for Windows\services都设好了!~ 奇怪了,怎么就不行了!~
      

  2.   

    你执行 Test1 能有什么?显然错了
      

  3.   

    其实你的目的是想 打印 "afasfdasfsadgsa",对吧?
      

  4.   

    D:\begjsp\WEB-INF\classes\将这个设进环境变量里面就可以了。你的目标文件夹一定要设进去,不然是找不到类的。
      

  5.   

    犯了一个低级的错误
    我输入的命令行是在这个目录下D:\begjsp\WEB-INF\classes\com\wrox\utilities输入java test1,所以就报错了 ,应该是D:\begjsp\WEB-INF\classes下输入java com.wrox.utilities.test1就好了!~
      

  6.   

    进入到D:\begjsp\WEB-INF\classes\运行java com.wrox.utilities.test1
    test1.class的位置是在环境变量yourclasspath\com\wrox\utilities
    如果在D:\begjsp\WEB-INF\classes\com\wrox\utilities运行java test1
    类装载器会在当前目录来查找test1.class,但是test1.class是在相对于当前目录的com\wrox\utilities目录下,所以装载失败