gpt4 book ai didi

java getenv Windows系统环境变量

转载 作者:太空宇宙 更新时间:2023-11-04 07:27:53 31 4
gpt4 key购买 nike

我有一个 JAVA 应用程序,它使用 System.getenv("MY_VAR") 获取系统环境变量。有没有办法只搜索 Windows 系统环境变量而不搜索用户环境变量,类似于我们如何将环境变量目标传递到 C# Environment.GetEnvironmentVariable() 方法?任何帮助,将不胜感激。谢谢!

最佳答案

在 Java 中无法做到这一点,至少在 native 中无法做到这一点(见下文)。

Windows 合并系统和用户环境变量,并将合并的环境传递给应用程序,但不提供有关每个特定变量来自何处的信息。 C# 可以做到这一点,因为 C# 不是通过访问进程的环境来做到这一点,而是直接访问注册表中的系统环境配置。因此,它可以做出这种区分。 Java 只允许您直接访问 C# 中的 Process 环境目标。

现在,如果您真的很绝望,您可以从 Windows 注册表 just as C# does 读取值。 。问题是 Java 不提供对注册表的直接访问,您只能通过 Preferences API 访问注册表项的有限子集。要获得完全访问权限,您需要使用 JNI。

有一个 JNI 注册表库位于 http://www.trustice.com/java/jnireg/ 。您可以使用它来读取 C# 使用的相同注册表项并访问相同的数据。

这里最重要的一点是,C# 不是通过实际的环境 block ,而是通过直接读取系统设置来访问该信息,而 Java 本身无法做到这一点。

关于java getenv Windows系统环境变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18243704/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com