最近学习这个,可是一直弄不清,来求教。
目录:
----------bin
     ----------run.bat
----------lib
----------src
----------log.txt
都是平行的,bin里面放的是编译好的.class文件,bat也在bin里面。按照如下的run.bat执行:
SET JAVA_HOME=e:\java\jdk1.6\bin\javaSET CLASSPATH=./.lib\classes12.jar;.lib\jdom.jar;.lib\xercesImpl.jar;.lib\xmlParserAPIs.jar;
java ArrearsTimer 10
pause报错:
Exception in thread "main" java.lang.NoClassDefFoundError:ArrearsTimer注:ArrearsTimer是要第一个执行的java文件网上看了些资料,搞不清楚这样的BAT文件的参数的具体意思,应该是自己写的路径有问题。
希望谁能帮助一下,纠正下BAT的写法,谢谢

解决方案 »

  1.   

    ArrearsTimer里面有package么?
    如果有的话需要 java ooxx.ArrearsTimer还有文件名需要与里面的class名一样,包括大小写
      

  2.   

    自己补充下:bin下面其实有3个.class文件的,之间存在调用关系的。是不是在set classpath的时候也要把另外2个类的路径也加上。原先只写了几个jar文件的路径
      

  3.   

    你要确定你的classpath路径中包含有ArrearsTimer
    SET CLASSPATH=./.lib\classes12.jar;.lib\jdom.jar;.lib\xercesImpl.jar;.lib\xmlParserAPIs.jar;
    你的ArrearsTime在哪个路径中?
      

  4.   

    也就是说这里也要配上ArrearsTime.class的路径,对吗?我刚才也发现了,我以为放在同级目录就不需要写了
      

  5.   

    set classpath中的.是代表本目录的意思吗?也就是BAT所在的目录?
      

  6.   

    刚才想简单的测试下,就把一个.class和BAT放在一个文件夹下,.class就打印一句话而已。通过BAT去执行,可是还是报找不到那个类啊
    BAT里面就像下面这么写了。
    set classpath=test.class;
    java test
    pause
    这个classpath到底是什么意思啊
      

  7.   

    .是代表当前目录,你的classpath里并没有设置
    SET CLASSPATH=./.lib\classes12.jar;.lib\jdom.jar;.lib\xercesImpl.jar;.lib\xmlParserAPIs.jar;SET CLASSPATH=.;./.lib\classes12.jar;.lib\jdom.jar;.lib\xercesImpl.jar;.lib\xmlParserAPIs.jar;
    注意红色部分,windows系统每个路径要用;分开
      

  8.   

    是不是要把所有的.class打成jar包才可以啊?我看到有人这么做的
      

  9.   

    这个不是必要的,只要保证在classpath中能找到.class文件就可以,jar其实也就相当于一个文件夹而已
    你的classpath设置存在问题看上去有点问题,就比如
    ./.lib\classes12.jar;你确定存在当前路径存在.lib文件夹?前面那个.表示当前路径,紧接着的.lib表示.lib文件夹(会不会是想表达..\lib,也就是上次目录的lib目录?),所以,你先整理清楚你的路径再说吧,实在不行,你就用绝对路径吧,比如c:\xxx\yyy\zzz\lib这样的方式