uzi*_*l24 6 java file-io windows-xp izpack windows-vista
我有一个我写过的Java桌面应用程序.在执行期间,我使用系统中定义的默认路径名创建文件夹和文件.
Java.io.files明确指出: By default the classes in the java.io package always resolve relative pathnames against the current user directory. This directory is named by the system property user.dir, and is typically the directory in which the Java virtual machine was invoked.
另外,我使用IzPack来启用安装和快捷方式创建.
当我在我的XP计算机上运行我的应用程序时,在安装后我得到一个桌面快捷方式,并且所提到的文件和文件夹创建位于Izpack安装Jar的位置.这是预期的行为.
但是当我在Vista机器上测试它时,文件夹和文件是在桌面上创建的!即使Jar位于正确的位置(c:\ program files ..等).
我希望这些文件可以在Jar所在的同一个文件夹中创建,而且肯定不会在桌面上.
谁能给我任何有关这里发生的事情的见解?
这是因为在 Vista/7 中,写入 Program Files 文件夹需要管理干预,因此 JVM 会寻找下一个可写位置作为后备:桌面(或用户文档目录)。不过,您可以在所有操作系统上以统一的方式轻松确定用户主目录,这比仅仅让 JVM 选择一个(希望如此)合理的位置要好得多。
由于这是 Windows 上 JVM 的一个已知错误,如果这没有帮助,则后备方法是检查系统环境变量USERPROFILE,该变量应指向正确的用户主文件夹:
String userHome = System.getenv("USERPROFILE");
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1190 次 |
| 最近记录: |