【问题标题】:How to set classpath order while building jar file using Ant?使用 Ant 构建 jar 文件时如何设置类路径顺序?
【发布时间】:2015-02-24 14:30:15
【问题描述】:

我正在使用 zipgroupfileset 将 lib 文件夹中的所有 jar 包捆绑到我的可执行应用程序 jar 文件中。

<zipgroupfileset dir="${lib.dir}" />

罐子必须包含在一些默认顺序中。我想改变这个默认顺序。

关于我为什么要这样做的说明:我的 Java 桌面应用程序使用了许多第三方 jar,这些 jar 包含在类路径中。当我通过 Eclipse 运行我的代码时,它工作正常。但是当我使用 ANT 构建 jar 文件时,它不能按预期工作。我确信它与类路径中的 jar 序列有关,就好像我在 Eclipse 中更改 jar 顺序一样,它在那里也失败了。

注意:我使用的是 Eclipse Kepler、Java 7、Ant 1.8。

【问题讨论】:

    标签: java ant


    【解决方案1】:

    我终于找到了解决方案。我在修改我的 ANT 文件后构建了 Jar。现在我的 ANT 构建在类路径中明确包含了第 3 方 API,这是解决方案的关键。

    <property name="lib.dir" value="lib" />
    
    <manifestclasspath property="jar.classpath" jarfile="${lib.dir}/*.jar">
        <classpath refid="project.class.path"/>
    </manifestclasspath>
    
    <jar destfile="${jar.dir}/${jar.name}">
            <fileset dir="${class.root}" includes="**/*.*" />
            <manifest>
                    <attribute name="Main-Class" value="${Main-Class}" />
                    <attribute name="Class-Path" value="${jar.classpath}" />
            </manifest>
    </jar>
    

    以前我在 ANT 中有如下类路径条目:

    <attribute name="Class-Path" value="." />
    

    【讨论】:

      猜你喜欢
      • 2011-01-25
      • 1970-01-01
      • 2010-10-30
      • 2012-10-22
      • 2020-06-07
      • 1970-01-01
      • 2020-04-08
      • 2012-05-31
      • 2011-07-16
      相关资源
      最近更新 更多