动态报告classnotfoundexception

时间:2017-08-15 16:52:41

标签: java exe dynamic-reports

我有一个java程序,它在netbeans中使用了很好的动态报告,甚至在我第一次运行它时在exe和jar中工作。但是,如果我分享jar / exe(我甚至发送了它并在我自己的计算机上重新下载),我收到错误java.lang.classnotfoundexception: net.sf.jasperreports.engine.jrdatasource。但是,我已经仔细检查了我的罐子,我确实有这个课程。那么这个问题可能是什么原因呢?

enter image description here

由于

编辑:完整错误:

Exception in thread "main" java.lang.NoClassDefFoundError: 
net/sf/jasperreports/engine/JRDataSource
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Unknown Source)
at java.lang.Class.privateGetMethodRecursive(Unknown Source)
at java.lang.Class.getMethod0(Unknown Source)
at java.lang.Class.getMethod(Unknown Source)
at sun.launcher.LauncherHelper.validateMainClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
Caused by: java.lang.ClassNotFoundException: 
net.sf.jasperreports.engine.JRDataSource
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 7 more

1 个答案:

答案 0 :(得分:0)

如果你在jar文件中得到Caused by: java.lang.ClassNotFoundException:,那么你需要提供classpath参数;
例如:

java -cp my.jar -jar ExternalJarFileName.jar

你也可以使用下面的命令提供所有jar使用,只需要创建一个目录并将所有外部jar放入其中并使用目录路径到下面的命令:

java -cp my.jar;C:\externalJar\* mainpackage.MainClass