Java 从命令行运行基于JasperReports的应用程序时获取NoClassDefFoundError
整整一天,我一直在尝试运行基于JasperReports库的第一份报告,但我还没有得到我想要的结果 我有一个Java 从命令行运行基于JasperReports的应用程序时获取NoClassDefFoundError,java,jasper-reports,classpath,noclassdeffounderror,Java,Jasper Reports,Classpath,Noclassdeffounderror,整整一天,我一直在尝试运行基于JasperReports库的第一份报告,但我还没有得到我想要的结果 我有一个ReportTemplate.jrxml文件,其中包含: <!DOCTYPE jasperReport PUBLIC "-//JasperReports//DTD Report Design//EN" "http://jasperreports.sourceforge.net/dtds/jasperreport.dtd"> <jasperReport name=
ReportTemplate.jrxml
文件,其中包含:
<!DOCTYPE jasperReport
PUBLIC "-//JasperReports//DTD Report Design//EN"
"http://jasperreports.sourceforge.net/dtds/jasperreport.dtd">
<jasperReport name="Simple_Report">
<detail>
<band height="20">
<staticText>
<reportElement x="180" y="0" width="200" height="20"/>
<text><![CDATA[Hello World!]]></text>
</staticText>
</band>
</detail>
</jasperReport>
两者都位于同一目录中。那么,我们走吧
D:\Java\Applecation\Report>javac -classpath D:\JasperReports\jasperreports-5.5.0\dist\jasperreports-5.5.0.jar TestReport.java
D:\Java\Applecation\Report>_
工作
D:\Java\Applecation\Report>java -classpath D:\JasperReports\jasperreports-5.5.0\dist\jasperreports-5.5.0.jar TestReport
Error: Could not find or load main class TestReport
简单地尝试
D:\Java\Applications\ATConsulting\report>java TestReport
Exception in thread "main" java.lang.NoClassDefFoundError: net/sf/jasperreports/
engine/JRException
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2521)
at java.lang.Class.getMethod0(Class.java:2764)
at java.lang.Class.getMethod(Class.java:1653)
at sun.launcher.LauncherHelper.getMainMethod(LauncherHelper.java:494)
at sun.launcher.LauncherHelper.checkAndLoadMain(LauncherHelper.java:486)
Caused by: java.lang.ClassNotFoundException: net.sf.jasperreports.engine.JRExcep
tion
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 6 more
对不起,如果这是一个愚蠢的问题,我只是初学者
谢谢你的帮助 Java找不到main方法,因为它没有在TestReport类(不在声明的类路径上)中查找 必须将TestReport.class文件的位置添加到类路径中,如下所示:
java -classpath D:\JasperReports\jasperreports-5.5.0\dist\jasperreports-5.5.0.jar;. TestReport
(注意类路径声明末尾的;
(windows类路径分隔符)和
(本地目录)
另请参见。Java找不到主方法,因为它没有在TestReport类(不在声明的类路径上)中查找 必须将TestReport.class文件的位置添加到类路径中,如下所示:
java -classpath D:\JasperReports\jasperreports-5.5.0\dist\jasperreports-5.5.0.jar;. TestReport
(注意类路径声明末尾的;
(windows类路径分隔符)和
(本地目录)
另请参见。我不同意这个问题是重复的!这是一个Jasper问题。完全不同。我不同意这个问题是重复的!这是一个Jasper问题。完全不同。