gpt4 book ai didi

java - 在 Jython 中使用 java.util.prefs.Preferences

转载 作者:太空狗 更新时间:2023-10-29 12:08:28 24 4
gpt4 key购买 nike

我似乎无法使用 Jython 脚本存储 Java 首选项。如果在 Jython 2.5 beta 中我使用:

clazz = Class.forName('mypackage.myclass')
prefs = Preferences.userNodeForPackage(clazz);
# or Preferences.userRoot()
prefs.put('propertyname', 'yes')

不存储首选项。如果我再添加:

prefs.flush()

我明白了

java.util.prefs.BackingStoreException: Couldn't get file lock.

我目前正在使用 Java 1.6 在 Linux 和 Unix 上运行它。我希望我遗漏了一些明显的东西,因为我的 Java 应用程序可以在同一系统上成功使用 java.util.prefs.Preferences。

如有任何帮助,我们将不胜感激。

最佳答案

在对您的问题和答案的评论中,您声明它试图编写/etc/.java/.systemPrefs。我认为这实际上是不对的。

clazz = Class.forName('mypackage.myclass')
prefs = Preferences.userNodeForPackage(clazz);
# or Preferences.userRoot()
prefs.put('propertyname', 'yes')

您正在使用 Preferences.userNodeForPackage,因此您将获得 .userPrefs。它们位于/home/[user]/.java 并且应该是可写的。

使用 systemPrefs,您可以在 linux 上遇到权限问题。默认情况下,首选项存储在/etc/.java/.systemPrefs 中。如果此目录不可用(例如,如果您只是将 jre 复制到系统中),则 FileSystemPreferences 类用于写入首选项回落到 [java.home]/.systemPrefs。

调用 prefs.flush() 应该不是必需的,因为首选项会在预定义的时间间隔内以及程序终止时保存。

关于java - 在 Jython 中使用 java.util.prefs.Preferences,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/840763/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com