2010-10-25 123 views
0

我有一個名爲「a.jar」的jar文件,它具有另一個名爲「b.jar」的jar文件。如何在另一個jar文件的類路徑中的jar文件中運行一個類

a.jar 
| 
|-- META-INF 
|  | 
|  |-- MANIFEST.MF 
| 
|-- b.jar 
    | 
    |- com/test/MainInB.class 

「b.jar」具有com/test/MainInB.class文件。 (MainInB類剛打印出的 「Hello World!」)

「a.jar文件」 具有這樣的MANIFES.MF:

Manifest-version: 1.0 
Main-Class: com.test.MainInB 
Class-Path: b.jar 

(manifest文件並用新的空行結束)


我想運行這樣的a.jar,因此它打印出「hello world!」

Java的罐子a.jar文件

但我得到的NoClassDefFoundError!

請幫忙!這是不允許的?或者我錯過了什麼?

[R 喬

+1

我認爲沒有直接的方式做到這一點。查看http://one-jar.sourceforge.net/ – 2010-10-25 04:12:44

+0

注意a.jar的類路徑指定b.jar與a.jar相鄰。 (即,可以在a.jar所在的目錄中找到與b.jar相同的目錄中的文件) – user268396 2010-10-25 04:45:46

回答

0

其實我的示例工作!

我只是在我的項目中使用maven-assembly-plugin來創建jar和MANIFEST.MF的問題。

在配置或插件中必須關閉某些東西。

謝謝反正傢伙!

Joe

+0

對不起,傢伙..忽略我上面的答案。那是不對的。我認爲嘗試執行另一個jar文件的jar文件內部的類文件是非法的。 – joe 2010-10-25 23:13:44

0

Java有一個問題,它不能從jar文件中讀取jar文件。

他們考慮將來發布。但直到現在還沒有修復,請參閱BUG

你必須讓他們再次在圖書館

相關問題