呼叫节点findJavaHome.js'在尝试加载binding.gyp时返回退出状态

时间:2016-03-25 03:31:35

标签: java node.js npm node-gyp

我在尝试在节点上安装java时遇到此错误" npm install -g java"。

[node-java] Error: not found: javac
gyp: Call to 'node findJavaHome.js' returned exit status 1 while in binding.gyp. while trying to load binding.gyp
gyp ERR! configure error 
gyp ERR! stack Error: `gyp` failed with exit code: 1
gyp ERR! stack     at ChildProcess.onCpExit (/usr/lib/node_modules/npm/node_modules/node-gyp/lib/configure.js:305:16)
gyp ERR! stack     at emitTwo (events.js:87:13)
gyp ERR! stack     at ChildProcess.emit (events.js:172:7)
gyp ERR! stack     at Process.ChildProcess._handle.onexit (internal/child_process.js:200:12)
gyp ERR! System Linux 3.13.0-73-generic
gyp ERR! command "/usr/bin/nodejs" "/usr/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"
gyp ERR! cwd /usr/lib/node_modules/java
gyp ERR! node -v v4.4.1
gyp ERR! node-gyp -v v3.3.0
gyp ERR! not ok 
npm ERR! Linux 3.13.0-73-generic
npm ERR! argv "/usr/bin/nodejs" "/usr/bin/npm" "install" "-g" "java"
npm ERR! node v4.4.1
npm ERR! npm  v2.14.20
npm ERR! code ELIFECYCLE

我尝试过的一些命令:

>which java
/opt/java/jdk1.7.0_79/bin/java

>$JAVA_HOME
bash: /opt/java/jdk1.7.0_79

>javac
Usage: javac <options> <source files>...

在node-java包中,当我执行:&#34; node findJavaHome.js&#34;我得到&#34; /opt/java/jdk1.7.0_79"

2 个答案:

答案 0 :(得分:4)

安装java编译器
sudo apt-get install default-jdk

答案 1 :(得分:1)

看起来这是因为使用sudo导致默认情况下不会保留用户的环境,因此我的JAVA_HOME无法读取。此命令有效:sudo -E npm install