我试图解决这个问题出现时,试图碧玉报告导出为PDF格式,但加载使用JRXmlLoader以.jrxml文件时的一个错误,代码抛出此异常:IllegalAccessException时加载的.jrxml
Caused by: java.lang.IllegalAccessException: Class org.openide.util.WeakListenerImpl$ProxyListener can not access a member of class org.openide.filesystems.$Proxy0 with modifiers "public"
at sun.reflect.Reflection.ensureMemberAccess(Unknown Source)
at java.lang.reflect.AccessibleObject.slowCheckMemberAccess(Unknown Source)
at java.lang.reflect.AccessibleObject.checkAccess(Unknown Source)
at java.lang.reflect.Constructor.newInstance(Unknown Source)
at org.openide.util.WeakListenerImpl$ProxyListener.<init>(WeakListenerImpl.java:413)
... 100 more
这是一个似乎会导致execption代码:
JasperDesign jasperDesign = JRXmlLoader.load("C:/jrxmls/myreport.jrxml"); //< this line
JasperReport jasperReport = JasperCompileManager.compileReport(jasperDesign);
jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, resultSetDataSource);
由于它不是我的代码,因为我真的不知道该怎么用碧玉工作,我提前不是道歉能够为这个问题提供更多的背景。
我已经添加了多个org.openide-我的构建路径,因为我有一吨“ClassNotFoundException”,也许这是问题的来源?
我读过这个问题,可能来自jasperreport与JDK 8的兼容性问题,但奇怪的是代码在从Eclipse运行时工作,异常仅作为可运行jar文件运行时引发。 这个程序不是年轻的,它可能有2年,直到现在,程序运行完美(正如我所听到的)。
编辑:好的,所以,我试图运行该程序使用版本1.7的JRE。不幸的是,由于它依赖于运行在1.8上的其他程序,所以我无法测试这个解决方案。
这可能是由于您自己提到的jdk 8引起的。就Eclipse而言,它可以使用不同版本的jdk本身 - 也许这就是代码在那里运行的原因...... – Plirkee