将当前目录添加到JAR文件的类路径中

时间:2012-03-02 11:43:05

标签: java deployment ant classpath

我的代码被部署为JAR文件。 JAR包含一个目录lib,其中包含我的代码所需的许多第三方JAR。我已使用Ant通过classpath将这些添加到MANIFEST.MF

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中的类路径?我使用lib Ant任务将classpath目录中的JAR添加到manifestclasspath

1 个答案:

答案 0 :(得分:5)

您是否尝试将.添加为当前目录的参考?

   <jar jarfile="dummy.jar">
            <manifest>
                    <attribute name="Main-Class" value="com.package.Class"/>
                    <attribute name="Class-Path" value=". ${jar.class.path}"/>
            </manifest>               
    </jar>

另请参阅Executable jar won't find the properties files