对于nodejs app,heroku上的Java不支持的类版本?

时间:2016-01-17 04:07:38

标签: java node.js heroku

我有一个node.js应用程序需要在本地目录中运行java文件。我正在使用子进程运行java文件,它在本地主机上运行良好。

但是,当我尝试将应用程序部署到heroku时,我收到以下错误日志:

Error Log

关于可能出错的任何想法?

1 个答案:

答案 0 :(得分:0)

您的Java代码是为Java 8编译的,但它在Heroku上运行,使用Java 7.Cedar-14堆栈映像(Heroku的基础平台)上的默认JDK是Java 7.

为了使用Java 8,您还需要使用Java buildpack。但是,由于看起来您正在尝试运行二进制文件,因此您只需要base buildpack,它不会尝试编译任何内容。

运行这些命令应该可以解决问题:

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

然后重新部署。您可以通过运行以下命令来确认Java的版本:

$ heroku run java -version
Running java -version on nameless-reef-3840... up, run.7606
openjdk version "1.8.0_66-cedar14"
OpenJDK Runtime Environment (build 1.8.0_66-cedar14-b17)
OpenJDK 64-Bit Server VM (build 25.66-b17, mixed mode)

jvm buildpack的Java默认版本是Java 8,因此您不需要任何其他配置。