Wea*_*unk 7 java netbeans jar classpath libraries
我使用的是NetBeans 8.1,Apache Ant 1.9.4和Java 1.8.0_66.
在我们的本地网络部署环境中,我们有一个带有/ lib子目录的apps目录.我们在/ lib中有一个库(Library.jar),它依赖于/ lib中的其他库(Dep.jar).许多应用程序(App.jar)依赖于Library.jar.许多这些库和应用程序是在不久前构建的,使用的是旧版本(Java 1.6或更早版本).
以前,App.jar的清单会引用Class-Path: lib/Library.jar
,Library.jar会引用它Class-Path: lib/Dep.jar.
这一直有效,直到我们做了一些修复并将Library.jar更新到最新版本的Java.现在,当我们运行App.jar时,找不到Dep.jar,尽管我们的清单看起来和以前一样.App.jar现在正在寻找lib/lib/Dep.jar而不是lib/Dep.jar,因为Library.jar位于/ lib目录中.
到目前为止,我们最好的解决方案是编辑Library.jar中的Manifest.mf文件Class-Path: Dep.jar.这可以防止App.Jar深入两个库以查找Dep.Jar.但是,编辑jar文件并不是我们想要进行常规练习的,所以我们更喜欢NetBeans IDE中的解决方案或者我们可以添加到build.xml的东西,它将从jar文件中的类路径中删除lib并允许我们在同一目录中引用一个jar.我想要一个不涉及store-for-store的解决方案,因为我们希望更新我们的依赖jar,同时保持指向它们的指针.
此外,我想知道是什么原因引起了这一变化,无论是版本更新还是其他.任何帮助将不胜感激.
当前build.xml:
<?xml version="1.0" encoding="UTF-8"?>
<project name="Library" default="default" basedir=".">
<description>Builds, tests, and runs the project Library.</description>
<import file="nbproject/build-impl.xml"/>
</project>
Run Code Online (Sandbox Code Playgroud)
小智 1
您可以使用Apache Ant 的<path>或 ,<classpath>如下定义,
<path id="ant.classpath">
<fileset dir="common-libs">
<include name="*.jar" />
</fileset>
</path>
Run Code Online (Sandbox Code Playgroud)
在你的 build.xml 中,它可以指向你所需的“*.jar”所在的文件夹。
target然后在构建命令中构建应用程序时使用此路径。
更多参考, 类路径结构
并且, Ant 版本 1.8.0 中的类路径、路径和路径元素记录在哪里
| 归档时间: |
|
| 查看次数: |
1177 次 |
| 最近记录: |