【发布时间】:2015-02-03 09:38:11
【问题描述】:
我在 64 位安装的 Windows 7 上运行,并且正在调用 System.getenv("programfiles") 返回 C:\Program Files (x86) 而不是 C:\Program Files。我还注意到,当我在 IntelliJ 中使用 run 运行相同的代码时,它会返回应有的 C:\Program Files。我认为这是因为它从 IntelliJ 继承环境变量,但我希望能够从独立应用程序中获取 32 位和 64 位版本。是什么原因造成的,我能做些什么来解决它?
【问题讨论】:
-
您的代码是使用 32 位 JDK 还是 64 位编译的?
-
通常,应用程序会根据其比特性呈现一个环境。因此,32 位应用程序获取 32 位文件夹名称和注册表项,而 64 位应用程序获取 64 位挂件。
-
@BuhakeSindi 我正在使用 Maven 进行编译,我假设它使用 JAVA_HOME (应该是 64 位),但是当使用与 JAVA_HOME 相同路径的 IntelliJ 进行编译时,它可以工作。
-
@user2248702 它与您编译代码的java版本无关,但与您运行的java版本有关您的应用程序。系统将始终公开您正在执行代码的已配置 JVM 的属性。
标签: java intellij-idea environment-variables