Java 首选项:无法锁定用户首选项。锁定文件访问被拒绝

Omr*_*dry 3 java linux securityexception preferences apache-spark

我在 Linux 机器上运行 Java Spark 服务器,并且尝试存储用户首选项,但遇到两个主要问题:

  1. 虽然我可以在运行时获取/设置首选项,但每次我终止程序并再次运行它时,首选项都会被删除。

  2. 有时我会收到此错误(这可能与用户同时请求不同的页面有关):

    线程“Timer-0”中出现异常 java.lang.SecurityException:无法锁定用户首选项。锁定文件访问被拒绝。

我的代码如下所示:

...
prefs = Preferences.userRoot().node(PREFS_NAME);
...
get("/sample/reset", (req, res) -> {
    prefs.put("bgimg", "test");
    ...
});
get("/sample/", (req, res) -> {
    String bgImgPath = prefs.get("bgimg",BACKGROUND_IMAGE_PATH);
    ...
});
Run Code Online (Sandbox Code Playgroud)

ink*_*994 5

我通过以下方法解决了该问题:

sudo chmod -R 775 ~/.java/
sudo chown -R username:root ~/.java/
Run Code Online (Sandbox Code Playgroud)

仅仅执行第一个命令是不够的。