Error: java.lang.NoClassDefFoundError when running java from NodeJs

Error: java.lang.NoClassDefFoundError when running java from NodeJs

我正在尝试从 nodeJs 执行一个 jar 文件,我一直在使用 child_proces.exec 和 child_process.spawn。在这两种情况下,我都收到此错误: 错误:线程异常 "main" 错误:java.lang.NoClassDefFoundError:com/ftdi/FTDevice

我正在使用 ubuntu 14.04,安装了 java、jdk 等。

这是我的代码:

使用 exec:

var exeprocess = exec('java -Djava.library.path=./ftd2xx.so -jar DenkoviRelayCommandLineTool_10.jar DAE000dY 4 2 1');

使用生成:

var proc = spawn('java', 
                [   '-jar',
                    '-Djava.library.path=./ftd2xx.so',
                    'DenkoviRelayCommandLineTool_10.jar',
                    'DAE000dY ','4','2','1'
                ]);

我发现这两种情况都无法在 ft2xx.so 中找到 类,但为什么呢? b.t.w:仔细检查 command/locations 是否正确并且完全相同的脚本在终端

中完美运行

您需要将 -classpath <path of jar>/JavaFTD2XX-0.2.5.jar 添加到您的 exec 或 spawn 以避免 NoClassDefFoundError。