[英]Cannot set environment variable in Java
我在 Java 中设置环境变量时遇到问题,因为当我执行strings /proc/<PID>/environ
时,我没有看到 linux 中设置的环境变量。
在 Java 中,我通过set("my-key", "true")
进行设置并验证它是否已使用get("my-key")
进行设置。 然后我的应用程序没有按预期运行。 执行strings /proc/<PID>/environ
显示 env var (my-key) 尚未设置。 难道我做错了什么?
public static String get(String key) {
return System.getenv(key);
}
public static void set(String key, String value) {
getAll().put(key, value);
}
public static void remove(String key) {
getAll().remove(key);
}
public static Map<String, String> getAll() {
try {
Map<String, String> env = System.getenv();
Class<?> cl = env.getClass();
Field field = cl.getDeclaredField("m");
field.setAccessible(true);
return (Map<String, String>) field.get(env);
} catch (Exception e) {
throw new IllegalStateException("Failed to get environment variables", e);
}
}
环境变量是不可变的。 您不能从当前进程内部设置它们。
考虑其他解决方案,如系统属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.