簡體   English   中英

未找到 jni.h 文件 - 在 OS X El Capitan 上安裝 node-java 模塊

[英]jni.h file not found - installing node-java module on OS X El Capitan

我正在嘗試安裝node-java模塊,它允許 Node.js 連接到現有的Java API。 這是我用來安裝此模塊的命令:

須藤 npm 安裝 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 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

我知道這篇文章很舊,但它是第一個搜索,這就是我嘗試使用 Java 1.8 安裝 node-java 時解決此問題的方法

JAVA_HOME指向錯誤的位置。

它應該是:

/Library/Java/JavaVirtualMachines/jdk1.8.0_101.jdk/Contents/Home/

正確設置它的最佳方法是導出它:

export JAVA_HOME=`/usr/libexec/java_home -v 1.8.0`

在 Mac 系統中,我注意到如果在指定版本的末尾不包含 0,它將拉取 JRE 位置,而不是 node-gyp 使用的 JDK。

此外,您想驗證 JAVA_HOME 是否正確導出,您可以通過在終端中運行以下命令來驗證這一點:

echo $JAVA_HOME

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM