В TIBCO Jaspersoft® Studio 6.6.0 я скомпилировал Abc.jrxml
файл как Abc.jasper
.
Я проверил, что это нормально в проекте Java 8.
Однако мы должны использовать Java 7 из-за устаревшего кода. И среда Java 7 выдает следующее исключение, если я использую Abc.jasper
:
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
Для решения этой проблемы я скомпилировал ее с Java 7 в TIBCO Jaspersoft® Studio 6.6.0. Однако проблема не исчезла.
Вот настройки проекта:
Я считаю, что Jaspersoft все еще использует Java 8 для компиляции * .jrxml файлов.
(Если я создаю новый проект, Jaspersoft устанавливает Java 8 в качестве среды по умолчанию.)
В настоящее время я компилирую * .jrxml файл в примере проекта Java перед использованием.
JasperCompileManager.compileReportToFile("path_to.jrxml"),
"path_to.jasper");
Может кто-нибудь дать мне лучшее решение?
Мне бы хотелось, чтобы я мог делать это в Jaspersoft, не сталкиваясь с проблемами.