Jump to content
Changes to the Jaspersoft community edition download ×

net.sf.jasperreports.engine.JRException Error when running jar file, but run fine in IDE


bigrun_sarun
Go to solution Solved by bigrun_sarun,

Recommended Posts

Hi.

I just wrote a program in Eclipse (2022-03) as simple Java project (not even maven) that read excel on my computer into java (using Apache POI library) and write it to jasper report.
It run in Eclipse and report is generated perfectly fine. But when I export as runnable JAR, it's got errors eventhough I include all the needed libraries in the JAR, include jasperreports-6.19.1.jar and poi-5.2.2.jar set.
I'm using jdk 12.0.2.

run by command: java -jar .jarname.jar

This is the error

net.sf.jasperreports.engine.JRException: Errors were encountered when compiling report expressions class file:
D:eclipse-workspaceRentCondo_1651557749766_654059.java:18: error: cannot find symbol
public class Condo_1651557749766_654059 extends JREvaluator
                                                ^
  symbol: class JREvaluator
D:eclipse-workspaceRentCondo_1651557749766_654059.java:25: error: cannot find symbol
    private JRFillParameter parameter_MONTH = null;
            ^
  symbol:   class JRFillParameter
  location: class Condo_1651557749766_654059
D:eclipse-workspaceRentCondo_1651557749766_654059.java:26: error: cannot find symbol
    private JRFillParameter parameter_YEAR = null;
            ^
  symbol:   class JRFillParameter
  location: class Condo_1651557749766_654059
D:eclipse-workspaceRentCondo_1651557749766_654059.java:27: error: cannot find symbol
    private JRFillField field_roomType = null;
            ^
  symbol:   class JRFillField
  location: class Condo_1651557749766_654059
D:eclipse-workspaceRentCondo_1651557749766_654059.java:4: error: package net.sf.jasperreports.engine does not exist
import net.sf.jasperreports.engine.*;
^
D:eclipse-workspaceRentCondo_1651557749766_654059.java:5: error: package net.sf.jasperreports.engine.fill does not exist
import net.sf.jasperreports.engine.fill.*;
^
D:eclipse-workspaceRentCondo_1651557749766_654059.java:50: error: cannot find symbol
        parameter_MONTH = (JRFillParameter)pm.get("MONTH");
                           ^
  symbol:   class JRFillParameter
  location: class Condo_1651557749766_654059
D:eclipse-workspaceRentCondo_1651557749766_654059.java:51: error: cannot find symbol
        parameter_YEAR = (JRFillParameter)pm.get("YEAR");
                          ^
  symbol:   class JRFillParameter
  location: class Condo_1651557749766_654059
D:eclipse-workspaceRentCondo_1651557749766_654059.java:60: error: cannot find symbol
        field_roomType = (JRFillField)fm.get("roomType");
                          ^
  symbol:   class JRFillField
  location: class Condo_1651557749766_654059
9 errors
.
        at net.sf.jasperreports.engine.design.JRAbstractCompiler.compileReport(JRAbstractCompiler.java:229)
        at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:358)
        at net.sf.jasperreports.engine.JasperCompileManager.compile(JasperCompileManager.java:344)
        at net.sf.jasperreports.engine.JasperCompileManager.compileReport(JasperCompileManager.java:609)
        at GenerateJasper.generateReport(GenerateJasper.java:40)
        at ExcelRead.main(ExcelRead.java:86)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:567)
        at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:61)

 

And this is part of my code that generate jasper report
 

try {            JRDataSource jrDataSource = new JRBeanCollectionDataSource(dataList);                                    HashMap<String, Object> dataParam = new HashMap<>();            dataParam.put("MONTH", date.substring(0, 2));            dataParam.put("YEAR", date.substring(2, 6));                        InputStream input = new BufferedInputStream(new FileInputStream("/eclipse-workspace/Rent/jasper/Condo.jrxml"));            JasperReport jasperReport = JasperCompileManager.compileReport(input);            JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, dataParam, jrDataSource);            OutputStream output = new FileOutputStream(new File(outputPath+"/"+outputName));            JasperExportManager.exportReportToPdfStream(jasperPrint, output);        } catch (Exception e) {            e.printStackTrace();        }[/code]

Could anyone help me?

Link to comment
Share on other sites

  • Replies 3
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...