繁体   English   中英

运行Java应用程序时如何将classpath放在属性文件中?

[英]How can I put classpath in property file while running java application?

我有一个要使用参数和类路径运行的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时都可以更改它吗?

不,你不能。 考虑使用BAT文件收集所有jar并构建类路径:

@echo off
setLocal EnableDelayedExpansion
set CLASSPATH="
for /R ./lib %%a in (*.jar) do (
  set CLASSPATH=!CLASSPATH!;%%a
)
set CLASSPATH=!CLASSPATH!"
echo !CLASSPATH!

在您的情况下,您可以将游览类路径写入批处理/ shell scipt(取决于您的平台)。 由于您正在使用\\; 您在Windows上,因此批处理文件与您相关。

SET CP=log4j.jar
SET CP=%CP%;mkito.jar
.....

您当然也可以将jars写入属性文件,但是Windows Shell不知道这种格式,因此您将必须编写批处理文件来解析属性文件格式,该文件格式虽然不那么琐碎但仍然可行。

将jar保存在属性文件中的其他方法需要更改您的应用程序。 您可以创建自定义类加载器,以从属性文件中提到的jar中加载类。

但是我不确定您是否真的需要这个。 批处理文件恕我直言是您的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM