public static void main(String[] args) {
try {
JasperReport jr = null;
JasperPrint jp = null;
FileInputStream fis = new FileInputStream(new File(
"E:/first.jrxml"));
jr = JasperCompileManager.compileReport(fis); Map<String, String> map = new HashMap<String, String>();
// map.put("id", "test"); //这里是传参数的 必须先在ireport 中定义好 参数
// map.put("name", "test");
JRDataSource dataSource = new JRBeanCollectionDataSource(getTest());
jp = JasperFillManager.fillReport(jr, map, dataSource);
JasperViewer.viewReport(jp); } catch (Exception e) {
e.printStackTrace();
}
}就是到jr = JasperCompileManager.compileReport(fis); 就报错了,不知原因。
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/digester/Digester
at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:203)
at Test.main(Test.java:62)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.digester.Digester
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
... 2 more

解决方案 »

  1.   

    把你引入的jar包都贴出来看看
      

  2.   

    import net.sf.jasperreports.engine.JRDataSource;
    import net.sf.jasperreports.engine.JasperCompileManager;
    import net.sf.jasperreports.engine.JasperFillManager;
    import net.sf.jasperreports.engine.JasperPrint;
    import net.sf.jasperreports.engine.JasperReport;
    import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
    import net.sf.jasperreports.view.JasperViewer;
      

  3.   

    iTextAsian.jar
    jasperreports-3.0.0.jar
      

  4.   

    问题解决了,没有apache的一些common的jar