2013-01-16 38 views
3

我有一個用Eclipse開發的Java應用程序。我曾試圖將其導出爲一個.jar文件,以indipendently運行它,但如果我嘗試用命令來運行它用Eclipse創建的jar文件:找不到主類:UI.MainWindow。程序將退出

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.MF文件,它似乎是正確的:

Manifest-Version: 1.0 
    Main-Class: UI.MainWindow 

我使用的是的Eclipse IDE的Java開發人員的版本:太陽神發佈,在64位的Windows 2008系統上。

我該怎麼辦? 我怎麼解決這個問題? org/jfree/data/xy/XYDataset錯誤是什麼意思?

感謝

+0

JFree圖表不在您的類路徑中。 – Goibniu

回答

5

這通常是當一個或多個您所需的相關JAR文件不包含你的類路徑上發生的情況下,從MANIFEST片斷包括你,看來這是你的問題。

另一方面,您可能想使用導出Runnable Jar功能,這可以保證您導出的jar能夠正常工作,因爲您的Runtime Configuration用作導出此jar的模板是正確的。

+0

謝謝:我不知道Eclipse上的「導出爲Runnable JAR文件」,我試過了,fi提供一些配置細節,一切都很順利!許多超級超級感謝從意大利到約旦!^_^ –

+0

超級棒 - 從約旦到意大利的歡迎,不要提起它@ DavideChicco.it;) 在我看來,Eclipse是一個偉大的IDE(我也喜歡netBeans的一些特性,例如Profiling功能) 。所以,我鼓勵你去探索更多! –

0

這意味着,在你的代碼main()方法 - org/jfree/data/xy/XYDataset沒有找到

可能的原因是org.jfree JAR庫中不存在你的classpath

+0

我會檢查這個庫,但無論如何,我的主要類不在jfree包中,它在我的MainWindow類中... –

+0

是的,你的主類試圖訪問一個類XYDataset,它是JFree圖表庫的一部分,它無法定位,因爲它在類路徑中不可用 – TheWhiteRabbit

+0

我重複了導出操作,通過添加\ libraries \文件夾這次。但問題仍然存在......-( –

0

1.You能儘量把圖書館變成JDK的類路徑
2.然後出口的jar和運行

lib path will be 
$JDK_HOME\jre\lib\ext 
$JDK_HOME is your jdk installation root path 
2

兩件事情你ç應該是

  1. 如下所示,在類路徑中使用依賴關係jar啓動Java應用程序。
    java -cp jfreechart-1.x.x.jar -jar application.jar

  2. Add Classpath option with in your MANIFEST.MF as below
    Manifest-Version: 1.0
    Main-Class: UI.MainWindow Class-Path: < PATH to the jfreechart-1.x.x.jar >

+0

(1)選項的錯誤與之前一樣,(2)選項給出了一個稍微改變的錯誤:現在控制檯顯示「Exception in thread」main「java.lang.NoClassDefFoundError:UI/MainWindow」 ,其餘都是一樣的。謝謝反正 –

+0

只是探索(打開)jar文件是否真的有提到的類。 – Syam

+0

with in application.jar在「UI」文件夾下MainWindow.class文件應該存在 – Syam

0

我對Google Web Toolkit示例web應用程序的創建類似於此。這是錯誤的,因爲Java編譯器設置爲1.6,GWT v2.6需要jdk 1.7 +。我切換了jdk和版本。 GWT能夠編譯。

相關問題