将当前目录添加到JAR文件的类路径
问题描述:
我的代码正在部署为JAR文件。 JAR包含一个目录lib
,其中包含我的代码需要的许多第三方JAR。我已经使用Ant将这些添加到classpath
,通过MANIFEST.MF
。将当前目录添加到JAR文件的类路径
Manifest-Version: 1.0
Ant-Version: Apache Ant 1.7.0
Created-By: 20.5-b03 (Sun Microsystems Inc.)
Main-Class: com.package.Class
Class-Path: ../lib/c3p0-0.9.1.2.jar ../lib/dbunit-2.4.8.jar ../lib/gua
va-10.0.1.jar ../lib/hsqldb.jar ../lib/javax.jms.jar ../lib/log4j-1.2
.16.jar ../lib/mockito-all-1.9.0.jar ../lib/ojdbc14.jar ../lib/slf4j-
api-1.6.4.jar ../lib/slf4j-log4j12-1.6.4.jar ../lib/xmlunit-1.3.jar
还有一个queries.properties
文件是在JAR的根。
还有两个属性文件是必需的。我希望这些位于与JAR文件相同的目录中,并且代码能够找到它们。我相信代码能够找到这些属性文件,他们需要在classpath
。因此我需要将JAR文件的目录添加到classpath
。
首先,这是我应该使用替代方法来定位属性文件的正确方法吗?
如果这是正确的,我该如何使用Ant将JAR的当前目录添加到MANIFEST.MF
的类路径中?我使用manifestclasspath
Ant任务将lib
目录中的JAR添加到classpath
。
答
您是否尝试过将.
作为参考添加到当前目录?
<jar jarfile="dummy.jar">
<manifest>
<attribute name="Main-Class" value="com.package.Class"/>
<attribute name="Class-Path" value=". ${jar.class.path}"/>
</manifest>
</jar>
+0
谢谢。这工作。 – mip 2012-03-02 12:51:47
*“我想这些驻留在同一目录中的JAR文件” *如果我的程序的用户,我宁愿他们是1 )在'user.home'的子目录下(我的备份脚本可以很容易地访问它们,而不是备份的软件)。或者.. 2)在我选择的位置(使用文件选择器)安装应用程序。 – 2012-03-02 12:32:23
@AndrewThompson感谢您的贡献。应用程序将作为计划任务执行,不需要任何用户干预。更多的情况是将属性文件和JAR文件放在一起以帮助部署。 – mip 2012-03-02 12:54:45