无法加载 JNotify 本机库(java.library.path 中没有 jnotify)

Cannot load the JNotify native library (no jnotify in java.library.path)

当我尝试 运行 任何播放项目时,我收到以下警告,它似乎使我的项目 运行 比正常情况慢得多:

Cannot load the JNotify native library (no jnotify in java.library.path)
Play will check file changes for each request, so expect degraded reloading performance.

我发现 this 问题,这似乎已经解决了 Windows 用户的问题,但我还没有找到 Linux 台机器的解决方案

我尝试将从 here 下载的 .jar 和 .so 复制到 /usr/lib/jvm/jdk1.8.0_212/bin/,但没有成功

此外,我注意到在我的播放目录 (~/play/repository/local/net.contentobjects.jnotify/jnotify/0.94/jars) 中有一个 jnotify.jar,所以我不确定为什么它没有使用那个

我在 Ubuntu 20.04 64 位

上使用 Play v2.2.4

从 jnotify.jar 中提取 .so 后,ldd libjnotify.so 命令的输出是:

linux-vdso.so.1 (0x00007ffd4c3cd000)
libc.so.6 => /lib/x86_64-linux-gnu/libc.so.6 (0x00007f94bbed5000)
/lib64/ld-linux-x86-64.so.2 (0x00007f94bc2df000)

它似乎没有列出任何未解析的库(尽管我不确定如何解释该输出)。 libc.so.6ld-linux-x86-64.so.2 存在于列出的目录中,我不确定它在哪里查找 linux-vdso.so.1

感谢任何帮助!

我会为后代描述它是如何解决的:

首先,下载JNotifyhere并解压

然后在终端中输入 java -XshowSettings:properties,并检查 java.library.path 属性。 就我而言,此处列出的第一个路径是 /usr/java/packages/lib/amd64

最后,将解压的文件64-bit Linux/libjnotify.so移动到java.library.path中的目录(在我的例子中,/usr/java/packages/lib/amd64

重启播放后,成功了

再次感谢@cbley!