◀返回
在运行时访问原生可执行文件中的环境变量
原生可执行文件访问环境变量的方式与常规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!