加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

Java:System.getenv(“APPDATA”)返回null,现在是什么?

发布时间:2020-12-15 08:39:47 所属栏目:Java 来源:网络整理
导读:我刚刚发现当一个 Java程序在Windows上通过“Run As …”(从可执行文件的上下文菜单)作为另一个用户启动时,对System.getenv(“APPDATA”)的调用将返回null,而不是通常的应用程序数据文件夹 现在,当涉及到Windows文件夹等时,我有点像菜鸟,所以我的问题是,当我
我刚刚发现当一个 Java程序在Windows上通过“Run As …”(从可执行文件的上下文菜单)作为另一个用户启动时,对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 SettingsApplication Data

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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读