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