Mac 上的 Java Plist 位置
Posted
技术标签:
【中文标题】Mac 上的 Java Plist 位置【英文标题】:Java Plist Location on Mac 【发布时间】:2018-02-21 20:04:23 【问题描述】:我的 Plist 代码有问题?当我第一次运行程序时,它会询问文件位置,因为没有 plist。
下次我运行程序并移动表单然后退出程序时,它会在 ~library/Preferences/com.apple.java.util.prefs.plist 中写入一个新的 plist,这正是我所期望的。
当我删除上面的 plist 并重新启动程序时,我希望它需要作为新文件名,但它会从其他地方提取 plist 并使用旧信息。
这是获取 plist 的代码
// get preferences from plist
Preferences prefsRoot = Preferences.userRoot();
Preferences myPrefs = prefsRoot.node("WizardPreferences");
strFileName = myPrefs.get("Path", "");
int intPos1X = myPrefs.getInt("posScene1X", 300);
int intPos1Y = myPrefs.getInt("posScene1Y", 300);
intPosX = intPos1X;
intPosY = intPos1Y;
// check file if "" then get file name
if (strFileName.equals(""))
// get file name
filechooser();
这是我退出程序时写plist的代码
// Exit Button
public void exit()
// define action for exit button
// save information for next run
Preferences prefsRoot = Preferences.userRoot();
Preferences myPrefs = prefsRoot.node("WizardPreferences");
myPrefs.put("Path", strFileName);
myPrefs.putInt("posScene1X", intPosX);
myPrefs.putInt("posScene1Y", intPosY);
// exit and close program
System.exit(0);
我确信我没有很好地解释我的问题,因为我对 Java 编程有点陌生。
任何帮助将不胜感激。
罗杰
【问题讨论】:
【参考方案1】:这个问题最近困扰着我。这不是您的代码的问题 - 它是您所说的记住。
Mac 会缓存首选项,因此当您删除 plist 文件时,缓存仍会提供信息。你可以:
删除 plist 文件后
killall -u cfprefsd
或
重启
项目 2. 和 3. 将导致缓存被清除,然后您的首选项将在 cfprefsd 自动重新启动时重新加载。
希望对你有帮助。
【讨论】:
以上是关于Mac 上的 Java Plist 位置的主要内容,如果未能解决你的问题,请参考以下文章