node-java错误:libjvm.so:无法打开共享对象文件:没有这样的文件或目录

时间:2016-03-24 00:11:54

标签: java node.js heroku node-java

我在以下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)

1 个答案:

答案 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重新部署。