我正在通过 Node.js 的 [node-java] 包装器运行 JNA 编译的 native 库 1
图书馆是 Hunspell JNA包装了 hunspell 拼写库。
在我最简单的测试中
var instance=java.callStaticMethodSync("dk.dren.hunspell.Hunspell","getInstance");
console.log( instance );
发生的情况是,当尝试从 lib 路径加载 native 库时, Node 似乎挂起:
hsl = (HunspellLibrary)Native.loadLibrary(libFile, HunspellLibrary.class);
在 this方法,所以调用 loadLibrary
方法时似乎是 JNA 问题。
库就在那里,我还尝试了该方法的第二个选项,将其复制到临时文件夹中并从那里加载,这样我就可以看到
Loading temp lib: /var/folders/_b/szqwdfn979n4fdg7f2j875_r0000gn/T/jna5370593161365499003.libhunspell-darwin-x86-64.dylib
它就在那里。
最佳答案
它正在接收什么数据以及它是否正在接收任何数据?
getInstance(字符串 libDir) HunspellManager 的实例在指定的目录中查找 native 库。
来自 man(1) hunspell: 默认字典取决于区域设置。搜索以下环境变量:LC_ALL、LC_MESSAGES 和 LANG。如果未设置,则默认个人词典为 $HOME/.hunspell_default。
希望有帮助。
关于java - 在 Node 中加载 Java JNA 原生库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42585453/