2014-02-13 51 views
2

我正在製作一個可運行的jar,其中我的主類是eclipse的JarRsrcLoader。Manifest.mf:引用jar文件中的主要類

這是我封裝結構

org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader 

而且我清單

Manifest-Version: 1.0 
Rsrc-Class-Path: ./selenium-server-standalone-2.39.0.jar 
Class-Path: . 
Rsrc-Main-Class: test.Main 
Main-Class: org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader 

我的罐子裏的目錄結構:

enter image description here

當我嘗試從命令行運行jar使用:

java -jar output.jar 

我得到:

Error: Could not find or load main class org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader 

任何人都可以看到,我錯了?當我把org文件夾放在與output.jar相同的目錄下時,它運行正常。我想從jar中找到它,這樣就沒有外部依賴關係。由於

UPDATE

類文件是在jar:

enter image description here

+0

混淆org和output.jar.where是org文件夾? – Kick

+1

您是否確認output.jar中的文件org/eclipse/jdt/internal/jarinjarloader/JarRsrcLoader。** class **存在? –

+0

@ Absurd - 注意文件存在,請參閱更新。 – Sionnach733

回答

0

雖然這問很長一段時間回來,這是我工作

嘗試在您的工作空間一樣com.eclipse.jdt.internal創建包.jarinjarloader並放置所有文件JarRsrcLoader.java,RsrcURLConnection.java,RsrcURLStreamHandler.java和RsrcURLStreamHandlerFactory.java,它們可以從谷歌下載。 然後寫出清單如圖所示

Build-Jdk: 1.7.0_55 
    Class-Path: . 
    Rsrc-Main-Class: com.abc.Master 
    Main-Class: com.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader 
    Rsrc-Class-Path: ./ lib/xyz.jar 
+0

我也喜歡這個解決方案。但是:你可以用maven自動化嗎? – user1414745

+0

@ user1414745我認爲maven shade插件會有幫助。 – Pan

相關問題