Добавить файлы JAR в путь к классу - PullRequest
0 голосов
/ 18 июня 2011

Я делаю скрипт сборки в виде пакетного файла (не спрашивайте меня, почему или предлагайте альтернативы. Вы не будете помогать).У меня есть переменная с именем CLASSPATH, которую я использую с компилятором Java.CLASSPATH содержит пути к многочисленным каталогам и файлам jar.В дополнение к этому, я хотел бы добавить каждый файл jar в. [Some-long-path] \ lib \ directory

Это выглядит примерно так:

SET /p dummy=%CLASSPATH%>classpath.tmp~<nul 
SET WAR_LIB_PATH=war\WEB-INF\lib
DIR %WAR_LIB_PATH% /B | findstr /L ".jar" > jars.tmp~
REM Have to put it into an external file
FOR /f %%j in (jars.tmp~) do (
    SET /p dummy=;%WAR_LIB_PATH%\%%j>>classpath.tmp~<nul 
)
SET /P CLASSPATH=<classpath.tmp~
ECHO %CLASSPATH%

ThisПОЧТИ работает.Есть только две проблемы:

  • Каким-то образом между записями появляется пробел, который разрушает путь к классам.
  • Он резко заканчивается после 1024 символов.

Может кто-нибудь помочь мне с этим?

Ответы [ 2 ]

2 голосов
/ 18 июня 2011

Если вы используете java6, достаточно написать dir/*, чтобы включить все файлы jar в каталог

http://download.oracle.com/javase/6/docs/technotes/tools/windows/javac.html

Например, если каталог foo содержит a.jarи b.JAR, то элемент пути класса foo / * расширяется до A.jar; b.JAR

1 голос
/ 18 июня 2011

Если вы используете javac, попробуйте использовать аргумент командной строки -classpath вместо переменной среды, поскольку эти переменные ограничены по размеру в разных операционных системах.

И чисто какПримечание: если вы запускаете программу из JAR (например, java -jar app.jar), вы можете добавить метаданные сделать файл JAR, который выполняет то же самое.

...