我正在制作一个构建脚本作为批处理文件(不要问我为什么,也不要提出替代方案。你不会有帮助的)。我有一个名为CLASSPATH的变量,用于java编译器。CLASSPATH包含许多目录和jar文件的路径。除此之外,我还想在中添加每个jar文件。[一些长路径]\lib\directory
它看起来像这样:
SET /p dummy=%CLASSPATH%>classpath.tmp~<nul
SET WAR_LIB_PATH=warWEB-INFlib
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%
这几乎奏效了。只有两个问题:
- 不知怎的,条目之间出现了一个空格,破坏了类路径
- 它在1024个字符后突然结束
有人能帮我吗?
如果使用java6,那么编写dir/*
以将所有jar都包含在dir 中就足够了
http://download.oracle.com/javase/6/docs/technotes/tools/windows/javac.html
例如,如果目录foo包含a.jar和b.jar,然后是类路径元素foo/*被扩展为A.jar;b.JAR
如果您正在运行javac
,请尝试使用-classpath
命令行参数而不是环境变量,因为这些变量在不同的操作系统上大小有限。
纯粹作为一个附带说明,如果您正在从JAR(例如java -jar app.jar
)运行程序,那么您可以添加元数据到实现相同功能的JAR文件中。