【发布时间】:2017-01-18 14:03:02
【问题描述】:
我正在尝试安装 node-java 模块,该模块允许 Node.js 连接到现有的 Java API。这是我用来安装此模块的命令:
sudo npm install java -g
这是我得到的错误的堆栈跟踪:
> java@0.7.2 install /usr/local/lib/node_modules/java
> node-gyp rebuild
CXX(target) Release/obj.target/nodejavabridge_bindings/src/java.o
In file included from ../src/java.cpp:1:
../src/java.h:7:10: fatal error: 'jni.h' file not found
#include <jni.h>
^
1 error generated.
make: *** [Release/obj.target/nodejavabridge_bindings/src/java.o] Error 1
gyp ERR! build error
gyp ERR! stack Error: `make` failed with exit code: 2
gyp ERR! stack at ChildProcess.onExit (/usr/local/lib/node_modules/npm/node_modules/node- gyp/lib/build.js:267:23)
gyp ERR! stack at ChildProcess.emit (events.js:98:17)
gyp ERR! stack at Process.ChildProcess._handle.onexit (child_process.js:810:12)
gyp ERR! System Darwin 15.6.0
gyp ERR! command "node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/local/lib/node_modules/java
gyp ERR! node -v v0.10.33
gyp ERR! node-gyp -v v1.0.1
gyp ERR! not ok
这里要注意的有趣的是,我可以使用 npm install java 命令在本地安装相同的模块,该命令将其安装在:
/Users/[$my_username]/node_modules
这里有一些附加信息:
节点
v0.10.33
Java
java version "1.8.0_101"
Java(TM) SE Runtime Environment (build 1.8.0_101-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.101-b13, mixed mode)
$JAVA_HOME
/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/include
找到 jni.h
/Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.11.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/jni.h
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift-migrator/sdk/MacOSX.sdk/System/Library/Frameworks/JavaVM.framework/Versions/A/Headers/jni.h
/Library/Java/JavaVirtualMachines/jdk1.7.0_80.jdk/Contents/Home/include/jni.h
/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/include/jni.h
【问题讨论】:
-
据我所知
sudo使用不同的环境,所以它可能没有你的JAVA_HOME -
您找到解决方案了吗?
标签: javascript java node.js selenium-webdriver java-native-interface