簡體   English   中英

在嵌入式jar中使用入口點創建可執行jar

[英]Create executable jar with entrypoint in an embedded jar

我有一個Eclipse項目,它使用許多.jar文件作為依賴項,但是沒有源文件。 設置了運行配置,該配置將main方法(入口點)定義為其中一個jars中的方法。 它在Eclipse中運行良好,但是當我嘗試使用可執行jar向導時,出現錯誤“無法從給定的啟動配置中找到主要方法”。

根據本教程 ,可以使用jar命令行工具手動設置jar的入口點,但是我應該使用哪種方法作為main方法的.class文件的路徑,因為我沒有直接的任何.class。文件,只是嵌入式jars?

另外,還有其他方法可以正確設置入口點嗎?

標准JAR文件格式允許清單和一組類/資源文件。 當然,您可以將JAR文件打包在JAR文件中,但是標准Java類加載器無法以這種方式(從嵌入式JAR文件)加載類。 因此,您將需要擴展所有JAR文件並根據軟件包對其進行重新打包。 同樣,如果您沒有編寫自己的類加載器,則為true。

幸運的是,如果您正在使用Maven,則Maven提供了一些插件來執行此重新打包任務。 請參閱Maven JAR插件Maven Shade插件 ,它們可以幫助創建所謂的Uber JAR,后者可以選擇使用Main-Class清單屬性。 另外,在沒有Maven的情況下,您始終可以使用簡單的shell腳本來擴展和重新封裝類。

完成此操作后,可以使用java -jar myjar.jarjava -cp myjar.jar my.main.Class

暫無
暫無

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

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