2012-03-30 112 views
0

我通常使用Eclipse來完成我所有的Java編程,當我使用它來測試我的程序時效果很好。到目前爲止,沒有任何問題。當我嘗試創建可執行的jar文件時,我的問題即將到來。無論我使用Eclipse來製作還是通過命令執行它,我都會遇到同樣的錯誤「無法找到主要類:主要」,我已經遵循了它的書面指南,甚至還有一些YouTube視頻一個視覺例子。爲什麼它無法找到主課程?創建jar文件的問題

+2

請與MANIFEST.MF – 2012-03-30 16:15:59

+1

您使用創建的.jar確切的命令行什麼是一起提供的JAR文件的結構?你的班級是否在一個包裏? – Attila 2012-03-30 16:16:27

+0

一個典型的錯誤是忘記了「的Main-Class」屬性 – JScoobyCed 2012-03-30 16:26:06

回答

1

試着改變你的清單文件名「MANIFEST.MF」

按照online specs for manifest files,它期望在特定位置的特定文件名。 jar工具處理位置,但是如果你給它'manifest.txt'它可能會保留這個名字,然後被jar加載機制忽略。

  The META-INF directory 

     The following files/directories in the META-INF directory are recognized and 
     interpreted by the Java 2 Platform to configure applications, extensions, 
     class loaders and services: 

    MANIFEST.MF 
    The manifest file that is used to define extension and package related data. 

嘗試letting Eclipse generate the JAR file。 Main類應該位於與包結構匹配的子目錄中。你的主類有一個包嗎?如果沒有,添加

package test;

到Main.java的頂部,那麼請確保Main.class文件被作爲罐內/test/main.class創建。然後,MANIFEST.MF可以具有reference to your Main.classapplication's entry point如下:

主類:此屬性的值定義了啓動器將在啓動 時加載的 主應用程序類的相對路徑。該值不能將.class擴展名附加到 類名稱中。

[編輯]
請張貼以下:
1)directory structure of the generated JAR(使用jar tf foo.jar
2)清單的內容從/META-INF/MANIFEST.MF
3)的名稱和包類與靜態main()方法

+0

我也試過這個。現在我試圖使命令,Eclipse和淨豆類,其中沒有一個似乎能夠找到主類可執行的JAR文件。 – 2012-03-30 17:59:57