gpt4 book ai didi

java - 用户工作目录 : XP vs Vista

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:33:35 24 4
gpt4 key购买 nike

我有一个我编写的 Java 桌面应用程序。在执行过程中,我在系统中定义的默认路径名下创建文件夹和文件。

Java.io.files 明确指出:默认情况下,java.io 包中的类始终根据当前用户目录解析相对路径名。该目录由系统属性 user.dir 命名,通常是调用 Java 虚拟机的目录。

此外,我正在使用 IzPack 来启用安装和创建快捷方式。

当我在我的 XP 计算机上运行我的应用程序时,安装后我得到一个桌面快捷方式,并且提到的文件和文件夹创建位于 Izpack 安装 Jar 的位置。这是预期的行为。

但是当我在 Vista 机器上测试时,文件夹和文件是在桌面上创建的!即使 Jar 位于正确的位置(c:\program files.. 等)。

我希望在 Jar 所在的同一文件夹中创建这些文件,而且肯定不在桌面上。

谁能给我一些关于这里发生的事情的见解?

最佳答案

这是因为在 Vista/7 中,写入 Program Files 文件夹需要管理干预,所以 JVM 寻找下一个可写位置作为后备:桌面(或用户文档目录)。不过,您可以在所有操作系统上以统一的方式轻松确定用户主目录,这比让 JVM 选择一个——希望如此——合理的位置要好得多。

因为这是一个 known bug对于 Windows 上的 JVM,如果这没有帮助,回退是检查系统环境变量 USERPROFILE,它应该指向正确的用户主文件夹:

String userHome = System.getenv("USERPROFILE");

关于java - 用户工作目录 : XP vs Vista,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8821401/

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