gpt4 book ai didi

Java: System.getenv ("APPDATA") 返回 null,现在怎么办?

转载 作者:可可西里 更新时间:2023-11-01 14:44:25 30 4
gpt4 key购买 nike

我刚刚发现,当一个 Java 程序以不同的用户身份通过​​“Run As...”(从可执行文件的上下文菜单)在 Windows 上启动时,调用 System.getenv("APPDATA") 将返回 null,而不是通常的应用程序数据文件夹。

现在,对于 Windows 文件夹等,我有点菜鸟,所以我的问题是,当我的程序必须能够将其数据存储在某个地方才能正常工作时,我应该如何处理这种情况?更具体地说,如果 System.getenv("APPDATA") 返回 null,我是否允许存储任何数据,如果可以的话, 在哪里?提前致谢!

最佳答案

好的,我使用 JNA 解决了我自己的问题:

com.sun.jna.platform.win32.Shell32Util.getFolderPath(int nFolder)

其中 nFolder = 0x001a 用于应用程序数据文件夹,nFolder = 0x001c 用于本地应用程序数据文件夹。在 Windows XP 上,输出为

C:\Documents and Settings\[UserName]\Application Data

C:\Documents and Settings\[UserName]\Local Settings\Application Data

最重要的是,当程序通过 Run As 启动时,这不会返回 null

关于Java: System.getenv ("APPDATA") 返回 null,现在怎么办?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5765181/

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