代码之家  ›  专栏  ›  技术社区  ›  masher

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

  •  6
  • masher  · 技术社区  · 15 年前

    在我的例子中,我的依赖关系是apachecommons CLI和Math。


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

    Manifest-Version: 1.0
    Created-By: 1.6.0 (Sun Microsystems Inc.)
    Main-Class: Main
    

    我的类路径看起来像

    .;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
    

    如果我在 /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中的文件,只是为了看看这是否有效,但它没有。

    2 回复  |  直到 15 年前
        1
  •  3
  •   Pascal Thivent    15 年前

    使用 Class-Path 进入 META-INF/MANIFEST.MF

    Class-Path: servlet.jar ../foo/bar.jar acme/beans.jar
    
        2
  •  3
  •   akf    15 年前

    这当然是可能的。考虑这个问题的一种方法是,每次创建jar时,都依赖于jre中的类,不必将它们包含在jar中。jre将自动在类路径中查找它们。如果没有找到,你会看到一个 NoClassDefFoundError .