2013-08-01 196 views
2

我一直在使用Netbeans(7.4開發版)開展一個項目,我想測試jar的可分發。當我使用'java -jar filename.jar'時,程序工作正常。但是當我嘗試雙擊jar文件時,出現這種錯誤:Error: Could not find or load main class W:\pathtoproject\dist\jarname.jarNetbeans Jar文件未執行

這沒有意義,我從來沒有看到jar文件認爲它是主類的錯誤。我在項目屬性中定義了主類。我提取了jar文件,看到Manifest文件有正確的主類定義。我該如何解決這個錯誤?

編輯:jar文件清單有這樣的:

Manifest-Version: 1.0 
Ant-Version: Apache Ant 1.9.1 
Created-By: 1.7.0_21-b11 (Oracle Corporation) 
Class-Path: 
X-COMMENT: Main-Class will be added automatically by build 
Main-Class: Driver 

驅動程序確實有常用的主要方法。

編輯2:我不知道它是否有所作爲,但我的驅動程序和一些其他重要的類不是任何包的一部分。只有助手類被打包。我被訓練成編碼困難的方式(即記事本和cmd),所以我不習慣使用Netbeans提供的所有功能(例如打包)。

+0

在jar中的manifest.mf文件中說什麼? –

+0

如果您編輯問題並在其中添加問題,它會更易於閱讀。所以沒有包的類「Driver」有一個主要方法? –

回答

0

事實證明,我的工作電腦是問題所在。公司設置使jar文件無法正確執行。當我在我的個人筆記本電腦上試過這個罐子時,它運行良好。從那裏我把它包裝成一個可執行文件並繼續我的快樂之路。

0

NetBeans提供的用於生成可執行文件的選項實際上非常有用。創建jar文件的唯一更好的工具是我在Eclipse中創建jar文件的嚮導。我強烈建議您使用這些工具之一。

Eclipse可執行文件創建嚮導值得下載Eclipse for。使用嚮導一次後,您可以保存一個ANT腳本,以便您可以根據需要返回使用命令行。 Eclipse嚮導可以執行高級且令人難以置信的有用任務,例如將您的代碼及其所需的所有庫打包到一個獨立的可執行jar文件中。要獲得Eclipse中的嚮導,請轉至「文件」 - >「導出...」 - >「Java」 - >「可運行的JAR文件」。

如果您仍想使用NetBeans,請轉到「運行」 - >「設置項目配置」 - >「自定義...」 - >「生成」 - >「打包」,然後選擇「編譯後生成JAR」。你可能必須做一個乾淨的生成之前,它使罐子。你的jar會顯示在項目文件根目錄下的「dist」文件夾中。

+0

我已經有了「編譯後生成JAR」選中。 Netbeans已經在構建罐子,這不是問題。問題是該罐子沒有工作。原來,這是我的電腦,而不是JAR。 – TheDuke777

0

對於一個罐子是可執行的,你必須有兩個東西在清單文件有關:

  1. 的「主類」條目必須指向那將是啓動應用程序的類,即您宣佈啓動應用程序的主要方法的類。
  2. 在清單文件中的所有條目之後,您必須將三行留空(我從來沒有找到解釋爲什麼這是必需的,但始終適用於我的文檔)。

您可以使用這個tool來檢查由Netbeans生成的jar文件是否符合該文件。

希望我幫上忙了。

+0

您也可以簡單地檢查清單文件的內容。 –

+0

我知道主要的班級,但我從來沒有聽說過第二部分。事實證明,該jar文件很好。這是我的電腦引起的問題。我懷疑問題是我工作計算機上的公司設置之一。當我在我的筆記本電腦上試過這個jar文件時,它工作正常。 – TheDuke777

0

您的項目必須包含兩個或三個java文件,其中一個是java文件,另一個是具有幀編碼的frame.java文件。

在同一個項目下的java文件中創建框架文件的對象,然後清理並構建您的項目。

例如,如果你有你的項目名稱爲project11,並在其下有兩個文件,一個名爲project11.java和project11frame.java,然後創建project11.java對象:

project11frame pf = new project11frame(); 
pf.setVisible(true); 

那麼幹淨並建立你的項目!