使用 Ant 构建 jar 文件时如何设置类路径顺序?
How to set classpath order while building jar file using Ant?
我正在使用 zipgroupfileset 将 lib 文件夹中的所有 jar 打包到我的可执行应用程序 jar 文件中。
<zipgroupfileset dir="${lib.dir}" />
Jar 必须按某些默认顺序包含在内。我想更改此默认顺序。
关于我为什么要这个的说明:我的 Java 桌面应用程序使用许多第三方 jar,它们包含在 class 路径中。当我通过 Eclipse 运行 我的代码时,它工作正常。但是当我使用 ANT 构建 jar 文件时,它无法按预期工作。我确定它与 classpath 中的 jar 序列有关,就好像我在 Eclipse 中更改 jar 顺序一样,它在那里也失败了。
注意:我使用的是 Eclipse Kepler,Java7,Ant 1.8。
终于找到解决办法了。我在更改我的 ANT 文件后构建了 Jar。现在我的 ANT 构建在 classpath 中明确包含第 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 中有 class-path 条目如下:
<attribute name="Class-Path" value="." />
我正在使用 zipgroupfileset 将 lib 文件夹中的所有 jar 打包到我的可执行应用程序 jar 文件中。
<zipgroupfileset dir="${lib.dir}" />
Jar 必须按某些默认顺序包含在内。我想更改此默认顺序。
关于我为什么要这个的说明:我的 Java 桌面应用程序使用许多第三方 jar,它们包含在 class 路径中。当我通过 Eclipse 运行 我的代码时,它工作正常。但是当我使用 ANT 构建 jar 文件时,它无法按预期工作。我确定它与 classpath 中的 jar 序列有关,就好像我在 Eclipse 中更改 jar 顺序一样,它在那里也失败了。
注意:我使用的是 Eclipse Kepler,Java7,Ant 1.8。
终于找到解决办法了。我在更改我的 ANT 文件后构建了 Jar。现在我的 ANT 构建在 classpath 中明确包含第 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 中有 class-path 条目如下:
<attribute name="Class-Path" value="." />