在节点中加载Java JNA本机库

在节点中加载Java JNA本机库,java,node.js,jna,Java,Node.js,Jna,我正在通过node.js的[node java]包装器运行一个JNA编译的本机库 该库是包装拼写库的库 在我最简单的测试中 var instance=java.callStaticMethodSync("dk.dren.hunspell.Hunspell","getInstance"); console.log( instance ); 当尝试从lib路径加载本机库时,节点似乎挂起: hsl = (HunspellLibrary)Native.loadLibrary(lib

我正在通过node.js的[node java]包装器运行一个JNA编译的本机库

该库是包装拼写库的库

在我最简单的测试中

     var instance=java.callStaticMethodSync("dk.dren.hunspell.Hunspell","getInstance");
     console.log( instance );
当尝试从lib路径加载本机库时,节点似乎挂起:

hsl = (HunspellLibrary)Native.loadLibrary(libFile, HunspellLibrary.class);
在方法中,因此调用
loadLibrary
方法时似乎是一个JNA问题

库就在那里,我还尝试了该方法的第二个选项,将其复制到一个临时文件夹中并从那里加载,这样我就可以看到了

Loading temp lib: /var/folders/_b/szqwdfn979n4fdg7f2j875_r0000gn/T/jna5370593161365499003.libhunspell-darwin-x86-64.dylib

它就在那里。

它正在接收什么数据?它是否正在接收任何数据

getInstance(字符串libDir) HunspellManager的实例在指定的目录中查找本机库

来自man(1)hunspell: 默认词典取决于区域设置。搜索以下环境变量:LC_ALL、LC_MESSAGES和LANG。如果未设置任何环境变量,则默认个人词典为$HOME/.hunspell_default


希望有帮助。

你能得到一个JVM线程转储吗?@technomage你是说在运行时(即运行挂起时)转储吗?是的,这就是我的意思。因此,默认字典是ok的(它在路径中),当从java加载时,它可以工作,比如:
java-cp-lib/jna.jar:build/jar/hunspell.jar-Droot=/data/data/dictionaries-Dlang=en_-gbdk.dren.hunspell.HunspellMain
。节点的问题似乎是通过JNA方法(静态)
native.loadLibrary(路径,类)
加载本机库。