作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我只有在 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)
…
带有文件的属性源:$
@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 z/OS390 shell 中,出现上述错误
===> 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)
如果我直接在 BatchConfig 类中尝试使用
@PropertySource("file:/usr/certain_path/config.properties")
它确实有效。所以我猜我自己在 java 命令“file:$”和我如何在 Unix 中设置变量之间存在一些错误或误解。
我仔细阅读了很多关于这两种方法的文章,据我所知,这两种方法都是正确的。我的意思是我设置 shell 变量的方式以及我访问它的方式。此外,它还适用于 Windows。
最佳答案
export CONF_DIR=/usr/certain_path/config.properties
如果您不使用export
,它只是在当前环境中设置。如果导出它,那么它就成为一个环境变量,并被子进程继承。
关于linux - 无法解析字符串值文件 :$ - error only happens in Unix 中的占位符 my_propertySource,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37602640/
我是一名优秀的程序员,十分优秀!