Добавление текущего каталога в путь к классу JAR-файла - PullRequest
5 голосов
/ 02 марта 2012

Мой код развертывается в виде файла JAR.JAR содержит каталог lib, который содержит ряд сторонних JAR, которые требуются в моем коде.Я добавил их в classpath, используя Ant, через 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?Я добавил JAR-файлы из каталога lib в classpath, используя задачу Ant manifestclasspath.

1 Ответ

5 голосов
/ 02 марта 2012

Вы пытались добавить . в качестве ссылки на текущий каталог?

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

Также смотрите Исполняемый файл не найдет файлы свойств

...