我有class文件d:\test\test_a.class,我在d:\test为当前路径情况下可以执行该文件,但如果当前路径不是d:\test时就不能执行该类,报错:Exception in thread "main" java.lang.NoClassDefFoundError: testStrTok

解决方案 »

  1.   

    你看看环境变量中PATH的值设了没有,比如:c:\j2sdk1.4.2\bin
      

  2.   

    那时当然呀,你没有指定classpath呀
      

  3.   

    首先你需要了解JVM(Java 虚拟机)加载类的原理,那么你就能回答这个问题了。JVM在加载类的时候,会根据系统环境变量中设置的CLASSPATH中所指定的路径去搜索需要加载的类文件,同时在CLASSPATH中若找不到的话,那么在当前执行目录中JVM也会去搜索,若都不能找到需要的Class文件,那么就会报出你现在的这个问题。解决办法有三个:1。在该Class文件当前目录执行 2。将该Class文件的路径加入CLASSPATH中 3。用java命令执行的时候,带上-classpath参数
      

  4.   

    java -classpath d:\test;testStrTok
    这样可以了。谢谢peacedog() :)