Jaspersoft-Java 7中的* .jrxml编译

时间:2019-05-13 09:45:03

标签: java jasper-reports jaspersoft-studio

在TIBCOJaspersoft®Studio 6.6.0中,我将Abc.jrxml文件编译为Abc.jasper。 我测试过在Java 8项目中还可以。

但是由于某些遗留代码,我们不得不使用Java 7。如果我使用Abc.jasper,Java 7环境将引发以下异常:

 java.lang.UnsupportedClassVersionError: Abc_1557727912510_682674 : Unsupported major.minor version 52.0
    at java.lang.ClassLoader.defineClass1(Native Method)
    at java.lang.ClassLoader.defineClass(ClassLoader.java:800)
    at net.sf.jasperreports.engine.util.JRClassLoader.loadClass(JRClassLoader.java:337)
    at net.sf.jasperreports.engine.util.JRClassLoader.loadClassFromBytes(JRClassLoader.java:238)
    at net.sf.jasperreports.engine.design.JRAbstractJavaCompiler.loadEvaluator(JRAbstractJavaCompiler.java:104)
    at net.sf.jasperreports.engine.design.JRAbstractCompiler.loadEvaluator(JRAbstractCompiler.java:358)
    at net.sf.jasperreports.engine.JasperCompileManager.getEvaluator(JasperCompileManager.java:381)
    at net.sf.jasperreports.engine.fill.JRFillDataset.createCalculator(JRFillDataset.java:467)
    at net.sf.jasperreports.engine.fill.BaseReportFiller.<init>(BaseReportFiller.java:151)
    at net.sf.jasperreports.engine.fill.JRBaseFiller.<init>(JRBaseFiller.java:236)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:72)
    at net.sf.jasperreports.engine.fill.JRVerticalFiller.<init>(JRVerticalFiller.java:60)
    at net.sf.jasperreports.engine.fill.JRFiller.createBandReportFiller(JRFiller.java:201)
    at net.sf.jasperreports.engine.fill.JRFiller.createReportFiller(JRFiller.java:216)
    at net.sf.jasperreports.engine.fill.JRFiller.fill(JRFiller.java:116)
    at net.sf.jasperreports.engine.JasperFillManager.fill(JasperFillManager.java:667)
    at net.sf.jasperreports.engine.JasperFillManager.fillReport(JasperFillManager.java:983)
    at uz.valijon.sbs_fault_reproducer.jasper.onemore.JasperTableExample.getJasperPrint(JasperTableExample.java:82)
    at uz.valijon.sbs_fault_reproducer.jasper.onemore.JasperTableExample.init(JasperTableExample.java:33)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleElement.invoke(InitDestroyAnnotationBeanPostProcessor.java:344)
    at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor$LifecycleMetadata.invokeInitMethods(InitDestroyAnnotationBeanPostProcessor.java:295)
    at org.springframework.beans.factory.annotation.InitDestroyAnnotationBeanPostProcessor.postProcessBeforeInitialization(InitDestroyAnnotationBeanPostProcessor.java:130)
    ... 38 more

为解决此问题,我在TIBCOJaspersoft®Studio 6.6.0中使用Java 7对其进行了编译。但是问题并没有消失。

这是项目设置:

enter image description here enter image description here enter image description here

我认为Jaspersoft仍在使用Java 8来编译* .jrxml文件。 (如果我创建新项目,Jaspersoft会将Java 8设置为默认环境。)

目前,我正在使用示例Java项目编译* .jrxml文件。

 JasperCompileManager.compileReportToFile("path_to.jrxml"),
                "path_to.jasper");

有人可以给我更好的解决方案吗? 我希望能够在Jaspersoft中做到这一点而不会遇到问题。

0 个答案:

没有答案