簡體   English   中英

Jar文件-找不到主類

[英]Jar File - main class not found

因此,我有以下項目Structure:我有一個名為“ com.github.liketechnik”的軟件包。 我的主要課程是此包中的Build(“ com.github.liketechnik.Build”)。

我以編程方式將經過編譯的類從那里放入具有正確清單的jar文件中,例如,包含版本屬性和Main-Class條目“ com.github.liketechnik.Build”。 jar內的類包含在“ com / github / liketechnik / Build.class”下。

運行java -jar output.jar它直接失敗:“錯誤:找不到或加載Mainclass com.github.liketechnik.Build”(翻譯成德語)。 通過java -cp build/main com.github.liketechnik.Build直接運行類時(例如,直接在jar外部的類文件),它可以毫無問題地工作。

我嘗試了幾個小時,並且還在每個文件中搜索了錯別字,因此,感謝您提供有關此問題的任何幫助,因為與此類問題有關的所有其他線程都無法解決我的問題。 如果您需要更多信息或直接提供源代碼,將其提供給您沒有任何問題。

編輯:添加了jar文件的結構。

jar文件具有以下結構:

  • 包含“ MANIFEST.MF”和上述條目的一個目錄“ META-INF”。

  • 一個目錄結構“ com / github / liketechnik / Build.class”(例如,還包含其他類(在子包中)。

表現:

Manifest-Version: 1.0
Main-Class: com.github.liketechnik.Build

Build.java:

package com.github.liketechnik;

public class Build {

    public static void main(String[] args) {
        System.out.println("Hi");
    }
}

手動運行時的輸出: Hi (與預期的一樣)從jar運行時的輸出: Fehler: Hauptklasse com.github.liketechnik.Build konnte nicht gefunden oder geladen werden

好的,似乎以編程方式創建.jar存檔並不像看起來那樣容易。 在.zip規范下,似乎需要處理的另一個問題請參閱此問題 ),因此需要在目錄hierachy之后添加條目。

示例:假設您有目錄, abb包含文件test.class toll.class ,你必須先添加a ,然后b ,然后里面的文件b 否則它將無法正常工作。

暫無
暫無

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

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