将全局应用程序数据放在Vista中的位置?

时间:2009-04-15 07:52:12

标签: java windows-vista permissions directory global

在Windows(Vista)系统中,我应该将每个人(即计算机的每个用户)都应该可读取的数据放在哪里? Vista的C:\ Users \ xxx \ AppData \ something,C:\ Program Files和C:\ ProgramData目录和UAC的概念有点令人困惑。

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

4 个答案:

答案 0 :(得分:5)

在vista c:\ ProgramData就是这个地方,它取代了以前在XP中的C:\ Documents and Settings \ AllUsers \ AppData。

我不确定在java中执行此操作的具体细节..但是,ALLUSERSPROFILE环境变量为您提供了路径,如果您可以掌握它。您应该始终使用此而不是对路径进行硬编码,因为文件夹名称会在操作系统的不同国际化版本上发生更改。

答案 1 :(得分:5)

如果您需要允许没有管理员权限的用户修改全局设置,那么正确的方法是为应用程序创建安装程序,并在安装期间设置“Common Application Data”文件夹的权限,以便用户区域允许写入它。

请参阅此帖子:Where to put common writable application files?

答案 2 :(得分:2)

除非数据非常大,否则您可能需要查看Preferences API;特别是Preferences.systemNodeForPackage。这为您提供了一个独立于平台的,系统范围的,与后端无关的存储设施,如果这就是您所追求的。

答案 3 :(得分:1)

  

此外,有没有准备好   确定那些位置的解决方案   用Java?

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