在Windows(Vista)系统中,我应该将每个人(即计算机的每个用户)都应该可读取和的数据放在哪里? Vista的C:\ Users \ xxx \ AppData \ something,C:\ Program Files和C:\ ProgramData目录和UAC的概念有点令人困惑。
此外,有没有现成的解决方案来确定Java的位置?我想它需要与本机库进行一些交互,因为System.getProperties只有user.home和user.dir,它们都不是全局可写的。
答案 0 :(得分:5)
在vista c:\ ProgramData就是这个地方,它取代了以前在XP中的C:\ Documents and Settings \ AllUsers \ AppData。
我不确定在java中执行此操作的具体细节..但是,ALLUSERSPROFILE环境变量为您提供了路径,如果您可以掌握它。您应该始终使用此而不是对路径进行硬编码,因为文件夹名称会在操作系统的不同国际化版本上发生更改。
答案 1 :(得分:5)
如果您需要允许没有管理员权限的用户修改全局设置,那么正确的方法是为应用程序创建安装程序,并在安装期间设置“Common Application Data”文件夹的权限,以便用户区域允许写入它。
答案 2 :(得分:2)
除非数据非常大,否则您可能需要查看Preferences API;特别是Preferences.systemNodeForPackage
。这为您提供了一个独立于平台的,系统范围的,与后端无关的存储设施,如果这就是您所追求的。
答案 3 :(得分:1)
此外,有没有准备好 确定那些位置的解决方案 用Java?
您可以检查适当的环境变量,例如%PROGRAMDATA%,%PROGRAMFILES%等。