簡體   English   中英

無法從命令行運行 jar 文件:“沒有主要清單屬性”

[英]Failing to run jar file from command line: “no main manifest attribute”

我正在嘗試從控制台運行 jar 文件:

java -jar ScrumTimeCaptureMaintenence.jar

並且我收到錯誤:

無法執行 jar- 文件:“沒有主清單屬性”

正如你所看到的,我實際上有一個主文件,它在 eclipse 中運行良好:

主要方法在類中

我需要做什么才能從命令行成功運行這個文件?

嘗試運行

java -cp ScrumTimeCaptureMaintenence.jar Main

在 Eclipse 中: right-click您的項目 -> Export -> JAR file

在帶有選項的最后一頁(當沒有Next按鈕處於活動狀態時)您將看到Main class:設置Main class: 您需要在此處設置默認執行的main方法的類(例如雙擊 JAR 文件時)。

-jar選項僅在 JAR 文件是可執行 JAR 文件時才有效,這意味着它必須有一個包含Main-Class屬性的清單文件。

如果它不是可執行的 JAR,那么您需要使用以下內容運行該程序:

java -cp app.jar com.somepackage.SomeClass

其中com.somepackage.SomeClass是包含運行程序的main方法的類。

單擊“導出”后,您可以選擇“可運行的 JAR 文件”。

您可以在“啟動配置”中指定您的主驅動程序

在此處輸入圖片說明在此處輸入圖片說明

首先從 Eclipse 運行您的應用程序以創建啟動配置。 然后只需按照以下步驟操作:

  1. 從菜單欄的文件菜單中,選擇導出
  2. 展開Java節點並選擇Runnable JAR file 單擊下一步
  3. Runnable JAR File Specification頁面中,選擇用於創建可運行 JAR 的“Java 應用程序”啟動配置。
  4. 導出目標字段中,鍵入或單擊瀏覽以選擇 JAR 文件的位置。
  5. 選擇合適的庫處理策略。
  6. 或者,您還可以創建一個 ANT 腳本來快速重新生成以前創建的可運行 JAR 文件。

來源:在 Eclipse.org 創建一個新的可運行 JAR 文件

將您的 Java 項目導出為Runnable Jar 文件而不是 Jar。

我將我的項目導出為Jar ,即使 Manifest 存在,它也給了我jar 中沒有主要清單屬性的錯誤即使 Manifest 文件存在於 Jar 中。 然而,清單文件中只有一個條目,它沒有指定要執行的 Main 類或函數或任何依賴的 JAR

將其導出為Runnable Jar 文件后,它按預期工作。

您需要在 Jar 的 Manisfest.mf 文件中包含“Main class”屬性

例如:主類:MyClassName

第二件事,要在您的 jar 中添加清單文件,您可以在工作區文件夾中手動創建文件,並在 Eclipse 項目資源管理器中刷新。

導出時,Eclipse 將創建一個包含您的清單的 Jar。

干杯!!

如果你使用 Spring boot,你應該在你的pom.xml添加這個插件:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM