Я получаю эту ошибку только при работе в Unix. Я имею в виду, что с таким же кодом я могу отлично работать в Windows.
Exception in thread "main" java.lang.IllegalArgumentException: Could not resolve placeholder 'CONF_DIR' in string value "file:${CONF_DIR}"
at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:174)
...
PropertySource с файлом: $
@Configuration
@ComponentScan("com…
@EnableBatchProcessing
@PropertySource("file:${CONF_DIR}")
public class BatchConfig {
...
из командной строки Windows, он работает отлично:
C:\20160601>SET CONF_DIR=C:/20160601/config.properties
C:\20160601>java –cp my_executable_jar.jar com/my_company/main
... no error at all since propertySource("file:$... finds the value previously settup
От UNIX г/OS390 sh флигель, выше ошибка происходит
===> CONF_DIR=/usr/certain_path/config.properties
===> echo $CONF_DIR
/usr/certain_path/config.properties
===> ./java –cp my_executable_jar.jar com/my_company/main
... now, propertySource("file:$ will not find the value previously settup although I checked and it is there (see the echo)
Если бы я попытался straigh внутри класса BatchConfig с
@PropertySource("file:/usr/certain_path/config.properties")
это работает. Так что я предполагаю, что есть некоторая ошибка или непонятная от меня между java-командой «file: $» и как я устанавливаю переменную в Unix.
Я внимательно прочитал об обоих подходах и, насколько я вижу, оба правильные. Я имею в виду либо то, как я устанавливаю переменную оболочки, и как я обращаюсь к ней. Кроме того, он работает в Windows.
Попробуйте вместо этого экспортировать CONF_DIR =/usr/certain_path/config.properties. – Gargoyle
Горгулья, спасибо. Он исправил мою проблему. Если вы можете предоставить его в качестве ответа, я задаю правильный ответ. Я буду благодарен, если вы сможете объяснить, в чем разница между «CONF_DIR =/usr/certain_path/config.properties» и «экспортировать CONF_DIR =/usr/defin_path/config.properties». Пожалуйста, обратите внимание, что эхо показывает то же самое. –