2009-03-02 121 views
19

我使用的是NetBeans 6.5,由於某些原因,它不會生成可執行的「開箱」jar。在NetBeans中生成可執行文件jar

我將我的項目設置爲主項目,在項目屬性「運行」菜單中定義了主類,並且當我按F6運行它時,它完美地工作。

我看了清單文件,它確實沒有在那裏定義主類,也省略了庫依賴關係。



我錯過了什麼嗎?有沒有一種方法(除了手動更改清單文件)生成可執行的jar文件?

編輯:是的,我試圖清理並重建,並與同MANIFEST.MF

Manifest-Version: 1.0 
Ant-Version: Apache Ant 1.7.1 
Created-By: 10.0-b23 (Sun Microsystems Inc.) 
+0

奇數。很確定,NetBeans默認情況下會生成可執行文件。當你運行一個項目時,它甚至可以在控制檯輸出中爲我顯示。沒有NetBeans在工作,所以我不能真正重複檢查:( – willcodejavaforfood 2009-03-02 14:37:11

+2

項目目錄中的manifest.mf並沒有逐字複製到.jar文件中。當您「清理並且清除」主類屬性和任何庫路徑時,構建「該項目 – 2009-03-02 14:42:22

+0

是的,它會默認生成可執行的jar文件,請嘗試清理並重新編譯 – 2009-03-02 14:44:16

回答

0

奇怪的,它應該做的出來,包括類路徑的開箱。

您是否從以前的版本升級?升級時,NB會升級項目文件,但有時候這種遷移不能很好地完成,這種情況會彈出。只需關閉該項目,將nbproject dir重命名爲nbproject_old,然後執行新項目 - >使用現有源的Java項目。再次設置主類並添加依賴關係,然後重試。

0

另一種方法完全是在NetBeans中開發,運行單元測試等,然後使用maven或ant腳本來執行「真實」構建。看起來這些構建工具可以讓您更好地控制構建方式,還可以讓您自動構建構建。

Maven的,您可以輕鬆地使用maven的JAR插件可以添加條目清單:

http://maven.apache.org/plugins/maven-jar-plugin/

0

轉到Files視圖。 在根目錄下創建一個manifest.mf文件。

/project_folder 
    build.xml 
    manifest.mf(edit here) 
    /dist 
    /src 
    /test 
    /build 
1

如果您清理並構建您的項目,它應該在「dist」目錄中創建jar。

它應該在項目目錄的頂層創建manifest.mf。

1

我碰到這個頁面後遇到了同樣的問題,我編輯了manifest.mf文件,但是這些變化沒有出現在jar MANIFEST.MF文件中。我發現我遇到的問題,並認爲我會傳遞信息以防萬一它是相關的。

我做錯了什麼是我沒有將我正在設置的項目設置爲主項目,所以當我編輯正確的清單時,我正在編譯錯誤的項目。

所以我想故事的短小,你檢查,看看你是否選擇了正在編輯的manifest.mf文件正確的項目?

1

也許你創建了Java Project with Existing Sources而不是Java應用程序

我有類似的問題,並創建新的Java應用程序,然後手動複製src文件解決了問題 - 一切工作「開箱」。

1

我有經驗,建設過程不同, 取決於項目類型。

我想,你已經創建了「Java類庫」項目。

因此,只需創建一個「Java應用程序」項目,然後將所有類合併到它。

然後,Netbeans將不覆蓋,但將"manifest.mf"加入到JAR中。

當然,這是一個愚蠢的Netbeans錯誤。當然,應該可以在之後添加主要的 類。

編輯:請參閱我的其他答案。這很容易。

0

更好的解決方案:

編輯nbproject文件/ project.properties和添加條目

manifest.file=manifest.mf 

manifest.mf應該在項目的根和只包含:

Manifest-Version: 1.0 
X-COMMENT: Main-Class will be added automatically by build 

廠。測試。

5

試試這個:

  1. 右鍵點擊「項目」面板上的項目,選擇「屬性」

  2. 在新的窗口中單擊「運行」。

  3. 編輯「主類:」字段(單擊瀏覽)。

這樣你將選擇主要的類,它是你的應用程序的入口點,並且Manifest將被正確創建。

6

如果您正在使用Maven的組裝插件,並希望建立一個可執行的JAR與依賴關係,你需要將此部分添加到您的pom.xml中Maven的組裝插件部分的配置:

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <configuration> 
    <!-- ... --> 
    <archive> 
     <manifest> 
     <mainClass>your.app.SampleClass</mainClass> 
     </manifest> 
    </archive> 
    </configuration> 
</plugin> 

來源:Maven Assembly Plugin Usage

7

我剛剛在NetBeans 7.2.1中使用Maven Java Application項目也遇到了同樣的問題。修改pom.xml文件到maven assembly plugin一個好辦法包括對myrho的答案(需要引用預先定義的描述符「JAR-與依存關係」):

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.4</version> 
    <configuration> 
     <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
     <archive> 
      <manifest> 
       <mainClass>your.app.MainClass</mainClass> 
      </manifest> 
     </archive> 
    </configuration> 
    <executions> 
     <execution> 
      <id>make-assembly</id> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

的另一種方法是建立一個Java應用程序項目不使用Maven的NetBeans。選擇文件 - >項目屬性 - >生成 - >打包,然後選中「複製相關庫」複選框。

0

在7.3中,只需啓用屬性/構建/包/副本從屬庫和主類(取決於選定的目標)將在構建時添加到清單中。

0

要手動強制創建與NetBeans IDE 8.0.2 ...

  1. 在Project Navigator中,展開您的< 項目>,然後右鍵單擊項目文件/ pom.xml的
  2. 點擊在目標領域運行Maven /目標
  3. 類型的 「一攬子」
  4. 單擊確定
012然後

輸出窗口將顯示(在Mac上)...

Building jar: /Users/<username>/NetBeansProjects/<project>/target/<project>-1.0-SNAPSHOT.jar 
0

好與neatbean你可以做下面的步驟如下: 1.右擊名稱項目選擇項目設置配置和選擇自定義
2.選擇運行並注意主類
3.選擇眉毛e並設置類,如果你想運行。點擊確定後。
4.完成。