当您使用 -jar 选项启动应用程序时:
... JAR 文件是所有用户类的来源,其他用户类路径设置被忽略。
如此处所述。一种解决方法是在 jar 文件的清单中指定类路径以包含附加路径(在此处描述)。
但是,鉴于您只是在谈论修改配置,您可能希望采用不依赖于类路径的不同方法。例如,我通常使用属性文件通过 Spring 配置我的应用程序以确定数据库的位置等。我的 Spring 配置在测试、QA 和实时环境中是一致的,但我在启动应用程序时将不同的属性文件作为命令行参数传递.
弹簧配置片段
<bean id="MyDataSource" class="org.springframework.jdbc.datasource.SingleConnectionDataSource">
<property name="url" value="jdbc:microsoft:sqlserver://${dbServer}:${dbPort};DatabaseName=${dbName}"/>
<property name="username" value="${dbUserName}"/>
<property name="password" value="${dbPassword}"/>
<property name="suppressClose" value="false"/>
</bean>
属性文件片段
dbServer=MyServer
dbPort=1433
dbName=MyDb
dbUserName=Me
dbPassword=foobar