我在以下node-plugin中收到错误并打开了一个问题: 插件在这里:https://github.com/joeferner/node-java 问题在这里:https://github.com/joeferner/node-java/issues/306
我发现使用rStudio的开发人员在SO上解决了类似的问题: libjvm.so: cannot open shared object file: No such file or directory
当我将节点应用程序启动到heroku时,我遇到了类似的错误:
return process.dlopen(module, path._makeLong(filename));
^
Error: libjvm.so: cannot open shared object file: No such file or directory
at Error (native)
at Object.Module._extensions..node (module.js:440:18)
at Module.load (module.js:357:32)
at Function.Module._load (module.js:314:12)
at Module.require (module.js:367:17)
at require (internal/module.js:16:19)
at Object.<anonymous> (/app/node_modules/java/lib/nodeJavaBridge.js:31:16)
at Module._compile (module.js:413:34)
at Object.Module._extensions..js (module.js:422:10)
at Module.load (module.js:357:32)
答案 0 :(得分:1)
看起来您需要像这样设置JAVA_HOME
环境变量:
$ heroku config:set JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64"
这是因为您正在使用堆栈JDK(默认JDK)。您还可以通过将jvm-common buildpack添加到您的应用程序来使用自定义JDK(通常是较新版本),这也将为您设置JAVA_HOME
:
$ heroku buildpacks:clear
$ heroku buildpacks:add https://github.com/heroku/heroku-buildpack-jvm-common
$ heroku buildpacks:add heroku/nodejs
然后使用git push
重新部署。