gpt4 book ai didi

linux - 无法解析字符串值文件 :$ - error only happens in Unix 中的占位符 my_propertySource

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:45:32 24 4
gpt4 key购买 nike

我只有在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com