在Mac OS X上,Java偏好设置存储在哪里?

46

在 Windows 上,你可以从 java.util.prefs.Preferences 访问 Java 首选项,并将其存储在注册表中。那么在 Mac OS X 上,这些首选项存储在哪里?

答案是:它们存储在用户的 Library 目录下的 Preferences 文件夹中。


我在Windows 7中并没有发现这是真实的。 - javamonkey79
@javamonkey79,你是说你的应用程序Java首选项(通过java.util.prefs.Preferences访问)在Windows上不存储在Windows注册表中吗?根据我的经验和我在网上阅读到的内容,它们是存储在注册表中的。例如,请参见:http://java.sun.com/developer/technicalArticles/releases/preferences/ - avernet
看一下文章的日期——它是2001年的……远在Windows 7之前 :) 我发现它们不再在同一个地方。 - javamonkey79
那么您的意思是在Windows 7上JVM不再将首选项存储在注册表中?这不是本问题的主题,但您能否与我们分享更多关于它存储在哪里的细节? - avernet
2
在我的Windows 7上,用户和系统偏好设置都保存在注册表中。在/HKEY_CURRENT_USER/Software/JavaSoft/Prefs/、HKEY_LOCAL_MACHINE/SOFTWARE/JavaSoft/Prefs/以及一些64位的偏好设置在HKEY_LOCAL_MACHINE/SOFTWARE/Wow6432Node/JavaSoft/Prefs/中。 - Alex
3个回答

56

来自Apple Developer Connection:

Preferences API生成的首选项文件名为com.apple.java.util.prefs。用户的首选项文件存储在其主目录下(~/Library/Preferences/)。系统首选项存储在/Library/Preferences/中,仅当用户为管理员时才会写入磁盘。


谢谢!在我的Mac上这个方法不起作用,因为我使用了“Preferences.systemNodeForPackage”,而应该使用“userNodeForPackage”方法。 - Richard
1
不,它不在那里! 它在当前登录用户的文件夹 / Library/ Preferences/ByHost 中。 - user1753536
3
实际上,它的路径是~/Library//Preferences/com.apple.java.util.prefs.plist。 - Oleg Gryb
给定的链接已经失效。 - madduci

22

另外需要注意,如果偏好设置嵌套得足够深,它将不会直接存储在 com.apple.java.util.prefs 中,而是存储在自己的文件中。例如,如果你有一个节点 /a/b/c,则该节点的键值对将存储在 a.b.c.plist 文件中。

该文件可以位于 ~/Library/Preferences/ 或者 /Library/Preferences/ 中,与 com.apple.java.util.prefs 文件类似。


0

当我使用代码创建偏好对象时:

package pl.marcinchwedczuk.iunrar.gui;

public class AppPreferences {
    private final Preferences preferences = Preferences
            .userNodeForPackage(AppPreferences.class);

然后设置会被存储在:

/Users/$USER/Library/Preferences/pl.marcinchwedczuk.iunrar.plist

由于某些原因,macOS BigSur上缺少gui部分。

另外,请记得在首选项对象上调用.flush()


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接