现在遇到一个头疼的问题,要求在bat中运行一个已经编译后的java文件,是一个JFREECHART,在Eclispe中已经能正确编译,现在把对应的文件和lib拷贝到了如下路径
D:\ZHENGJH\demo[里面是编译好的class文件],
D:\ZHENGJH\lib[java运行需要的jar,包括了jfreechart-1.0.8a.jar]现在在D:\ZHENGJH中产生一个bat文件,里面的内容是
@echo on 
set   CLASSPATH=%CLASSPATH%.\lib\*.jar; 
set   CLASSPATH=%CLASSPATH%.\demo\*.* 
java  demo/MyLineChartDemo5现在一运行这个bat文件总是报
Exception in thread "main" java.lang.NoClassDefFoundError: org/jfree/ui/Applicat
ionFrame,请问这是为什么?

解决方案 »

  1.   

    [code=BatchFile]
    @echo on  
    @set   CLASSPATH=%CLASSPATH%;.\lib\*.jar;  
    @set   CLASSPATH=%CLASSPATH%;.\demo\*.*  
    @java  demo.MyLineChartDemo5 [/code]
      

  2.   

    上面的错了,
    [code=BatchFile]
    @echo on  
    @set   CLASSPATH=%CLASSPATH%;.\lib\*.jar;  
    @set   CLASSPATH=%CLASSPATH%;.\demo\*.*  
    @java  MyLineChartDemo5 
    [/code]
      

  3.   

    另外应该如果你的类在包内的话,运行时应该加上包名。
    比如:@java xxx.yyy.MyLineChartDemo5
      

  4.   

    java -cp .;lib/jfreechart-1.0.8a.jar  demo/MyLineChartDemo5如果还缺少其它的jar,可以继续附在那个后面。
    当然你放在CLASSPATH里面也行的。set   CLASSPATH=%CLASSPATH%.\lib\jfreechart-1.0.8a.jar;  
    java demo/MyLineChartDemo5你的是linux系统哦,用 .分割每个jar,在Windows下面是分号分隔
      

  5.   


    @echo on  
    @set   CLASSPATH=%CLASSPATH%;.\lib\*.jar;  
    @set   CLASSPATH=%CLASSPATH%;.\demo\*.*  
    @java  demo.MyLineChartDemo5 和
    java -cp .;lib/jfreechart-1.0.8a.jar  demo/MyLineChartDemo5 我都试过了,居然还是报那个错,我又再Eclipse中跑了一遍仍然没错,到底是怎么一回事?
      

  6.   

    要结帖了,我原本觉得要想加入一个文件夹下的所有的jar入本例中的lib\*.jar这么写就可以了,结果发现不行,必须得把每一个jar详细的写出来才行即得写成
    @echo on   
    @set   CLASSPATH=%CLASSPATH%;.\lib\jfreechart-1.0.8a.jar;.\lib\struts.jar   
    @set   CLASSPATH=%CLASSPATH%;.\demo\*.*   
    @java  demo.MyLineChartDemo5  
    感谢大家的帮助。