2009-04-15 69 views
3

如果在Windows(Vista)的系统,我应该把数据应该是可读可写的每个人,即每个计算机用户? Vista的C:\ Users \ xxx \ AppData \ something,C:\ Program Files和C:\ ProgramData目录和UAC的概念有点混乱。将全局应用程序数据放在Vista中的位置?

此外,没有任何现成的解决方案,确定了Java的位置吗?我想它需要与本地库进行一些交互,因为System.getProperties只有user.home和user.dir,它们都不是全局可写的。

回答

5

在Vista C:\ ProgramData是这个地方,这取代了曾经被认为是C:\ Documents和Settings \ AllUsers的\ AppData的在XP。

我不知道在Java中这样做的具体..但是,在ALLUSERSPROFILE环境变量为您提供了路径,如果你能得到的那举行。您应该始终使用此选项而不是硬编码路径,因为文件夹名称会在操作系统的不同国际版本中更改。

+0

谢谢!看来System.getenv(“ALLUSERSPROFILE”)至少在我的系统上给出了C:\ ProgramData。 – 2009-04-15 08:21:04

1

此外,有没有准备好 解决方案来确定这些位置 与Java?

您可以检查approrpirate环境变量,例如%PROGRAMDATA%,%PROGRAMFILES%等。

5

如果你需要允许不具有管理员权限修改全局设置,然后正确的做法是为应用程序创建一个安装用户在安装过程中设置的“通用应用程序数据”文件夹,使得权限用户区域允许写入。

看到这个职位:Where to put common writable application files?