是否可以使用jar清单来使用文件夹中的所有jar

jav*_*csw 6 java dependencies jar manifest

我正在尝试设置jar清单,以便将所有库(jar)加载到jar旁边的文件夹中.

清单看起来像这样:

Manifest-Version: 1.0
Class-Path: libs/
Main-Class: path.to.my.class.Main
Run Code Online (Sandbox Code Playgroud)

布局如下:

- MyJar.jar
- libs/
-----lib1.jar
-----lib2.jar
Run Code Online (Sandbox Code Playgroud)

而我正试图这样运行:

java -jar MyJar.jar
Run Code Online (Sandbox Code Playgroud)

并且我在文件夹中的jar中获取有关类的NoClassDefinition错误.

如果有人好奇,该文件夹可能包含在类加载期间处理的可选jar.那个'swhy我不能使用硬编码或自动生成的.

任何的想法?

更新重新 提出问题,因为目前无法从清单本身进行此操作.答案是唯一真正可行的,不需要提取罐子,虽然它也有效.

因此,总结答案是否定的,如果您有未指定的依赖项,则无法单独使用清单文件.

kev*_*vin -1

java不知道libs目录中的jar文件。如果您使用的是java 1.6+,您可以运行程序

java -cp lib/* -jar MyJar.jar

  • java不允许同时使用`-cp`和`-jar`标志:http://stackoverflow.com/questions/15930782/call-java-jar-myfile-jar-with-additional-classpath-option (4认同)