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 位置的主要内容,如果未能解决你的问题,请参考以下文章

删除保存在设备上的 plist 中的第一项

如何在mac上打开FTP服务

react-native中iOS上的位置权限不起作用

mac osx lion xampp上的梨位置

Mac Os 上的 nltk 语料库位置

SwiftUI:检测 Mac 触控板上的手指位置