我有一个java,我想用参数和类路径运行, 所以我创建了这个启动脚本:
java -Denv=qa -Duser.timezone="GMT" -Dtest.services.mock=true -classpath ".;D:\\batch_server\\batch\\lib\\*;batch-server.jar" com.batch.servlet.StartBatch start
哪种方式非常好。
现在我想更改要写入的类路径,以便每个jar文件都会被编写,例如 -
-classpath ".;D:\\batch_server\\batch\\lib\\log4j.jar;D:\\batch_server\\batch\\lib\\mokito.jar; and so on
我的问题是我可以将类路径放入属性文件中,这样每次我添加\删除某个jar时我都可以更改它吗?
答案 0 :(得分:2)
@echo off
setLocal EnableDelayedExpansion
set CLASSPATH="
for /R ./lib %%a in (*.jar) do (
set CLASSPATH=!CLASSPATH!;%%a
)
set CLASSPATH=!CLASSPATH!"
echo !CLASSPATH!
答案 1 :(得分:0)
在您的情况下,您可以将tour classpath写入batch / shell scipt(取决于您的平台)。由于您使用的是\
和;
,因此批处理文件与您相关。
SET CP=log4j.jar
SET CP=%CP%;mkito.jar
.....
你肯定也可以将jar文件写入属性文件中,但是windows shell不知道这种格式,所以你必须编写批处理文件来解析属性文件格式,这种文件格式不是那么简单但可行。
在属性文件中保存jar的其他方法需要更改您的应用程序。您可以创建自定义类加载器,从proprties文件中提到的jar加载类。
但我不确定你真的需要这个。批处理文件IMHO是您的解决方案。