Когда вы используете опцию -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