[英]How to specify the directory as classpath in order to read a file in it using classloader while running java application?
[英]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.