0
我正在將jar文件和一個主類合併到一個jar中。問題是,我的主類使用這些罐子,如果它在一個罐子裏,它只是拋出它找不到類定義。如何讓班級看罐子裏的罐子?在JAR中包含JAR使得類不會看到jar內容
我正在將jar文件和一個主類合併到一個jar中。問題是,我的主類使用這些罐子,如果它在一個罐子裏,它只是拋出它找不到類定義。如何讓班級看罐子裏的罐子?在JAR中包含JAR使得類不會看到jar內容
Java Launcher$AppClassLoader
不知道如何從Jar中的Jar加載類。你需要的是一個自定義的類加載器,它知道如何從檔案中的jar文件加載類和資源,而不是從文件系統中的jar文件加載。
您可以看看one-jar,它允許您將Java應用程序及其依賴項Jars打包到單個可執行Jar文件中。
JarClassLoader也可以從頂級JAR和頂級JAR中的JAR加載類,本機庫和資源。
另一個解決方案(非常醜陋的)將會爆炸jar中的JAR內容。
如果您覆蓋'META-INF'文件夾中的文件,非常醜陋的解決方案也有可能導致混亂。這不是一個常見問題,但它取決於所使用的庫並需要手動檢查它們。 – millimoose