我試圖解決這個問題出現時,試圖碧玉報告導出爲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