创建JAR文件而不包含外部依赖项

mas*_*her 6 java dependencies jar manifest

是否可以创建需要外部依赖项的JAR文件而不在JAR文件中包含这些依赖项?

我的google-fu未能给我答案; 我找到的所有内容都显示了如何将它们包含在JAR文件中,但是不要将它放在清单文件中说"我还没有它们,查看用户的类路径".我假设在用户的类路径上正确安装和配置了依赖项.

就我而言,我的依赖项是Apache Commons CLI和Math.


编辑:在我的JAR文件中,我有Main.class.

我的清单文件如下:

Manifest-Version: 1.0
Created-By: 1.6.0 (Sun Microsystems Inc.)
Main-Class: Main
Run Code Online (Sandbox Code Playgroud)

我的CLASSPATH看起来像

.;C:\Program Files\Java\jre1.6.0_06\lib\ext\QTJava.zip;C:\java_lib\commons-cli-1.2.jar;C:\java_lib\commons-math-2.0\commons-math-2.0.jar
Run Code Online (Sandbox Code Playgroud)

如果我在JAR中包含依赖/lib项并将该行添加Class-Path: lib/commons-math-2.0.jar lib/commons-cli-1.2.jar到清单中,那么它确实有效.

我已经尝试添加Class-Path: commons-math-2.0.jar commons-cli-1.2.jar到清单而不包括JAR中的文件,只是为了看看是否可行,但事实并非如此.

Pas*_*ent 3

使用Class-Path中的条目META-INF/MANIFEST.MF来告诉在哪里查找相对于您的 JAR 的依赖项。例如:

Class-Path: servlet.jar ../foo/bar.jar acme/beans.jar
Run Code Online (Sandbox Code Playgroud)