我有一个用Eclipse开发的Java应用程序。我尝试将其导出为.jar文件,以便独立运行它,但是如果我尝试使用命令
运行它java -jar application.jar
我得到这个错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/jfree/data/xy/XYDataset
Caused by: java.lang.ClassNotFoundException: org.jfree.data.xy.XYDataset
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccesController.doPrivileged(Native Method)
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)
找不到主类:UI.MainWindow。程序将退出
目前,主类是MainWindow.class。它包含公共静态void main(String[] args)方法。我已经检查了舱单。
Manifest-Version: 1.0 Main-Class: UI.MainWindow
我正在使用Eclipse IDE for Java Developers version: Helios Release,在64位Windows 2008系统上。
我该怎么办?我怎么解决这个问题呢?/jfree/data/xy/xydataset错误的意义是什么?
谢谢
这通常是当一个或多个所需的依赖jar文件不包含在您的类路径上时发生的情况,并且从您包含的MANIFEST
片段来看,似乎这是您的问题。
另一个注意事项,您可能想要使用Export Runnable Jar
功能,这保证您导出的jar将工作,给定您的Runtime Configuration
用作导出该jar的模板是正确的。
你可以做两件事
-
在类路径中使用依赖jar启动java应用程序。
java -cp jfreechart-1.x.x.jar -jar application.jar
-
在MANIFEST中添加Classpath选项。MF如下
Manifest-Version: 1.0
主类:UI。主窗口- path: & lt;jfreechart-1.x.x.jar>
这意味着在你的代码中没有找到main()方法- org/jfree/data/xy/XYDataset
可能的原因是org。Jfree库jar不存在于类路径
1。您可以尝试将库放入jdk类路径
2.然后导出jar并运行
lib path will be
$JDK_HOMEjrelibext
$JDK_HOME is your jdk installation root path
我在Google Web Toolkit示例Web应用程序创建中得到了类似的结果。这是错误的,因为Java编译器设置为1.6,而GWT v2.6需要jdk 1.7 +。我切换了jdk和版本。GWT能够进行编译。