小编use*_*307的帖子

在shell脚本中设置环境变量并在Java程序中访问

这个问题是Setenvironmentvariablesinshellscript/accessinJavaprogram的后续​​问题。我试图在运行 shell 脚本后获取 Java 中的环境变量,但无法执行此操作

Shell 脚本:getDetails.sh:

#!/bin/bash
# File: getDetails.sh
export userDetails="USER123"
# echo "User Details for App :$userDetails"
Run Code Online (Sandbox Code Playgroud)

Java方法:

String details = new String("source " + "getDetails.sh");
ProcessBuilder processBuilder = new ProcessBuilder("/bin/bash", "-c", details);
Process getPwdProc = processBuilder.start();
System.out.println("Details - " + processBuilder.environment().get("userDetails"));
Run Code Online (Sandbox Code Playgroud)

java 方法为环境变量 userDetails 返回/打印 null。

PS - 请注意,此处不可能使用 InputStream/BufferedReader 读取用户详细信息,因为程序/组织不允许回显详细信息。

java unix bash shell processbuilder

2
推荐指数
1
解决办法
2612
查看次数

标签 统计

bash ×1

java ×1

processbuilder ×1

shell ×1

unix ×1