如何在jar文件中运行一个类,该文件位于另一个jar文件的类路径中

时间:2010-10-25 04:07:06

标签: java jar

我有一个名为“a.jar”的jar文件,它有另一个名为“b.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

(清单文件以空的新行结尾)


我想像这样运行a.jar所以打印出“hello world!”

  

java -jar a.jar

但我得到了NoClassDefFoundError!

请帮忙!这是不允许的?或者我错过了什么?

ř 乔

2 个答案:

答案 0 :(得分:0)

其实我的例子有效!

我只是在我的项目中遇到问题,我使用maven-assembly-plugin来创建jar和MANIFEST.MF。

配置或插件中必须关闭某些内容。

无论如何,谢谢你!

答案 1 :(得分:0)

Java有一个问题,它无法从jar文件中读取jar。

他们考虑将来发布。但直到现在才查到BUG

你必须在lib中再次保留它们