Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在字符串中展开环境变量_Java_String_Environment Variables - Fatal编程技术网

Java 在字符串中展开环境变量

Java 在字符串中展开环境变量,java,string,environment-variables,Java,String,Environment Variables,是否有一些java实用程序,可以扩展~和env。字符串中的变量 比如“~/bin;${MY_PATH}”->”/home/john/bin;/dev/null” 谢谢您可以提供bin文件夹的完整路径,并使用System.getProperty(“EVN\u PROP\u HERE”)基本上,您需要使用环境变量进行字符串插值并展开主目录。我不知道有什么简单的方法可以实现后者,但是如果您使用Spring进行设置,您可以使用它来替换字符串中的占位符 默认情况下,环境变量包含在占位符替换集中 更新:由于

是否有一些java实用程序,可以扩展~和env。字符串中的变量

比如“~/bin;${MY_PATH}”->”/home/john/bin;/dev/null”


谢谢

您可以提供
bin
文件夹的完整路径,并使用
System.getProperty(“EVN\u PROP\u HERE”)
基本上,您需要使用环境变量进行字符串插值并展开主目录。我不知道有什么简单的方法可以实现后者,但是如果您使用Spring进行设置,您可以使用它来替换字符串中的占位符

默认情况下,环境变量包含在占位符替换集中

更新:由于这是用户提供的,您仍然可以使用Spring助手类:

String stringToBeInterpolated = ....;
Properties properties = System.getProperties();
PropertyPlaceholderHelper helper = new PropertyPlaceholderHelper("${","}");
String interpolatedValue = helper.replacePlaceholders(stringToBeInterpolated , properties);

这对~,并没有帮助,但在这一点上,我假设您可以执行一个相当简单的字符串替换操作。

不,我有一个带有一些路径的字符串,包括env vars和“~”。考虑“这里可能有一些路径:~/${PAT}”。我不想解析它,提取{PATH},计算它并再次构建字符串。我想要一些实用程序,它将获得“Here may some path:~/${path}”,并返回“Here may some path:/home/john/bin”。不,这是一个用户文件内容,不是我的spring bean。更新以显示如何在用户内容上使用相同的底层spring代码。想知道Properties.getProperty是如何实现的。请注意,
org.springframework.util.PropertyPlaceholderHelper
是一个Spring类,它是这里的先决条件。