繁体   English   中英

无法加载 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.

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

我尝试复制 .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命令的output为:

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

任何帮助表示赞赏!

我将描述它是如何为子孙后代解决的:

首先,在这里下载JNotify并解压

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

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

重启play后就成功了

再次感谢@cbley!

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM