我正在制作一个构建脚本作为批处理文件(不要问我为什么或建议替代方案。你不会帮助)。我有一个名为CLASSPATH的变量,我和java编译器一起使用。 CLASSPATH包含许多目录和jar文件的路径。除了那些,我想在。[some-long-path] \ lib \ directory
中添加每个jar文件。它看起来像这样:
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%
这个ALMOST有效。只有两个问题:
有人可以帮我吗?
答案 0 :(得分:2)
如果您使用java6,只需编写dir/*
以包含目录中的所有jar
http://download.oracle.com/javase/6/docs/technotes/tools/windows/javac.html
例如,如果目录foo包含 a.jar和b.JAR,然后是类路径 element foo / *扩展为 a.jar文件; b.JAR
答案 1 :(得分:1)
如果您正在运行javac
,请尝试使用-classpath
命令行参数而不是环境变量,因为这些变量在不同的操作系统上受到大小限制。
纯粹作为旁注,如果您从JAR(ex java -jar app.jar
)运行程序,您可以add metadata执行完成相同操作的JAR文件。