【问题标题】:How to use OpenJDK 11 when deploying to Heroku?部署到 Heroku 时如何使用 OpenJDK 11?
【发布时间】:2019-05-17 17:27:39
【问题描述】:

我正在尝试将 Java 应用程序部署到面向 OpenJDK 11 的 Heroku。根据Heroku instructions,我已将system.properties 文件添加到我的应用程序的根目录,其中包含以下内容:

java.runtime.version=11

但是,当我部署时,我收到以下 Gradle 错误:

Gradle app detected
-----> Installing JDK 1.8... done
-----> Building Gradle app...
-----> executing ./gradlew jar
       Downloading https://services.gradle.org/distributions/gradle-4.10-all.zip

Welcome to Gradle 4.10!

[Gradle highlights]

> Task :compileJava FAILED

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':compileJava'.
> Could not target platform: 'Java SE 11' using tool chain: 'JDK 8 (1.8)'.

如何让 Heroku 检测并使用正确的 Java 版本?

【问题讨论】:

  • 看起来您可能使用的是旧版本的 Gradle,但我认为您无法在 Heroku 上自行升级。 Which stack are you using?
  • 这是一个独立的 jar,我想作为 HTTP 服务器运行。我正在使用 Gradle 4.10.2。
  • Gradle 直到 11 月 26 日发布的 5.0 版才支持 JDK 11。我认为您必须升级。如果可行,我可以在下面添加正确的答案。
  • 很有趣,因为它在本地与 4.10.2 一起工作。我会看看改变是否有什么不同。
  • 确保通过运行./gradlew wrapper --gradle-version 5.0git add . && git commit 升级包装器。这将确保 Heroku 使用您在本地使用的 Gradle 版本。

标签: java gradle heroku


【解决方案1】:

直到version 5.0(2018 年 11 月 26 日发布)Gradle 才正式支持 JDK 11。升级到该版本或更高版本应该可以解决此问题。

另请参阅this similar question,了解 Java 9 支持。

【讨论】:

  • 这可能是真的,但 Heroku 应该仍然安装了 JDK 11(而不是 Installing JDK 1.8)。一旦 Gradle 为 JDK 11 做好准备,请确保将 system.properties 文件签入 Git。
  • “一旦 Gradle 为 JDK 11 做好准备,请确保将 system.properties 文件签入 Git”——是的,当然。否则 Heroku 将永远看不到它。
  • 这对我也有用。我用 java.runtime.version=13 和 snip-snap 创建了一个 system.properties 文件,很简单。谢谢!
猜你喜欢
  • 2021-11-25
  • 2012-03-24
  • 1970-01-01
  • 1970-01-01
  • 2021-08-08
  • 2014-08-25
  • 2017-10-17
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多