1
我有一個node.js應用程序需要一個java文件在本地目錄中運行。我正在使用子進程運行java文件,它在本地主機上完美工作。在heroku上爲nodejs應用程序提供Java不受支持的類版本?
然而,當我嘗試部署應用的Heroku,我碰到下面的錯誤日誌:
任何想法什麼可能是錯的?
我有一個node.js應用程序需要一個java文件在本地目錄中運行。我正在使用子進程運行java文件,它在本地主機上完美工作。在heroku上爲nodejs應用程序提供Java不受支持的類版本?
然而,當我嘗試部署應用的Heroku,我碰到下面的錯誤日誌:
任何想法什麼可能是錯的?
你的Java代碼被編譯爲Java 8,但在Heroku上運行的Java 7雪松14疊加圖像的默認JDK(Heroku的基礎平臺)是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)
的Java的JVM的buildpack默認版本的Java是8,所以你不需要任何其他配置。