Mac上的Java Plist位置

时间:2018-02-21 20:04:23

标签: java plist

我的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 个答案:

答案 0 :(得分:0)

这个问题最近困扰我。这不是您的代码的问题-就像您说的那样记住

Mac会缓存首选项,因此当您删除plist文件时,缓存仍会提供信息。您可以:

  1. 删除plist文件后
  2. killall -u cfprefsd

    OR

  3. 重新启动

项目2和3.将导致清除缓存,然后在cfprefsd自动重启时重新加载您的首选项。

我希望有帮助。