◀返回
在运行时访问原生可执行文件中的环境变量
原生可执行文件访问环境变量的方式与普通 Java 应用程序相同。
运行演示
例如,运行一个 Java 应用程序,该应用程序会遍历您的环境变量,并打印出包含作为命令行参数传递的字符串的所有环境变量。
先决条件
确保您已安装 GraalVM JDK。最简单的入门方法是使用 SDKMAN!。有关其他安装选项,请访问 下载部分。
- 将以下源代码保存到名为 EnvMap.java 的文件中
import java.util.Map; public class EnvMap { public static void main (String[] args) { var filter = args.length > 0 ? args[0] : ""; Map<String, String> env = System.getenv(); for (String envName : env.keySet()) { if(envName.contains(filter)) { System.out.format("%s=%s%n", envName, env.get(envName)); } } } }
- 编译该文件并构建一个原生可执行文件,如下所示
javac EnvMap.java
native-image EnvMap
- 运行原生应用程序并传递一个命令行参数,例如“HELLO”。应该没有输出,因为没有名称匹配的环境变量。
./envmap HELLO <no output>
- 创建一个名为“HELLOWORLD”的新环境变量,并赋予它值“Hello World!”。(如果您使用的是
bash
shell,请按照下面的示例操作。)现在,再次运行原生可执行文件 - 它将正确打印出匹配的环境变量的名称和值。export HELLOWORLD='Hello World!'
./envmap HELLO
您应该收到预期的输出
HELLOWORLD=Hello World!