Node -java error: libjvm.so: невозможно открыть файл общих объектов: нет такого файла или каталога

Я получаю сообщение об ошибке в следующем node -plugin и открыл проблему: плагин здесь: https://github.com/joeferner/node-java вопрос здесь: https://github.com/joeferner/node-java/issues/306

Я вижу аналогичную проблему, которая была решена на SO в отношении разработчиков, которые используют rStudio: libjvm.so: невозможно открыть файл общих объектов: нет такого файла или каталога

У меня такая же ошибка, когда я запускаю приложение node для 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

Похоже, вам нужно установить переменную среды JAVA_HOME следующим образом:

$ heroku config:set JAVA_HOME="/usr/lib/jvm/java-7-openjdk-amd64"

Это связано с тем, что вы используете стек JDK (по умолчанию JDK). Вы также можете использовать пользовательский JDK (обычно более новую версию), добавив в ваше приложение jvm-common buildpack, который также установит для вас JAVA_HOME:

$ heroku buildpacks:clear
$ heroku buildpacks:add https://github.com/heroku/heroku-buildpack-jvm-common
$ heroku buildpacks:add heroku/nodejs

Затем передислоцируйте с помощью git push.