相关疑难解决方法(0)

在Java中查找用户主目录的最佳方法是什么?

困难在于它应该是跨平台的.Windows 2000,XP,Vista,OSX,Linux,其他unix版本.我正在寻找可以为所有平台实现此目的的代码片段,以及一种检测平台的方法.

现在,你应该知道的错误4787931user.home不能正常工作,所以请不要为我提供教科书的答案,我可以在手册中找到这些我自己.

java cross-platform home-directory

255
推荐指数
7
解决办法
21万
查看次数

在Java中获取我的文档路径

我需要使用Java找到我的文档路径.以下代码并没有给我"准确"的说明

System.getProperty("user.home");

相反应该是什么?

PS:我不想使用JFileChooser Dirty技巧.

java windows

24
推荐指数
3
解决办法
3万
查看次数

使用Java在Windows上查找用户的My Documents文件夹的正确方法?

无论出于何种原因,我有时需要在Java程序中在Windows上找到当前用户的My Documents文件夹来读取一些文件.但据我所知,没有办法做到没有严重缺陷.

第一个错误的方法:System.getProperty("user.home");
为什么它不起作用:

  • 它只返回\ username \文件夹; 我需要在末尾添加"\ Documents \"以获取Documents文件夹......并且只能使用英语.
  • Sun错误6519127和4787931.Java在Windows上通过读取已弃用的注册表项*来查找用户主文件夹以查找桌面然后获取父项; 此方法有多个已知问题,很容易导致返回完全错误的文件夹.这些错误是3.75岁和8岁,没有修复.

第二种错误的方法:使用注册表读取程序获取用户的个人文件夹,这是我的文档(但是i18n'd).
为什么它不起作用:
虽然它修复了仅限英语的问题,但它仍然使用相同的已弃用的注册表区域,因此错误仍然适用于它.

不推荐使用的注册表项表示使用本机调用(SHGetKnownFolderPath),这显然是我无法用Java完成的.

第三种错误方式:

JFileChooser fr = new JFileChooser();  
FileSystemView fw = fr.getFileSystemView();  
File documents = fw.getDefaultDirectory();
Run Code Online (Sandbox Code Playgroud)

为什么它不起作用:它很棒!
除非它没有.虽然我有一个程序在后台使用这个开放和运行,我打开了一个DirectX游戏(辐射:新维加斯).Java程序立即终止,没有堆栈跟踪.总是可以重现的(对我来说,那个游戏,谁知道还有什么).找不到太阳虫#.

那么有什么方法可以在Windows上从Java中找到没有已知问题的用户的Documents文件夹?

(这是一个很好的大问题.)

*(关键是"HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\Shell Folders")

java windows registry documents

13
推荐指数
1
解决办法
1万
查看次数