尝试将我的应用程序部署到heroku,但由于以下错误而不断失败: 无法使用工具链“ JDK 8(1.8)”定位平台:“ Java SE 11”
我有我的JAVA_HOME,JAVA_PATH等。.设置,我在这里有所有这些图像,我认为它们是正确的。如果我检查java -version和javac -version,它们都显示Java 11。
我还尝试将system.properties.txt文件放到根文件夹中,而不是在.txt中放一个带有java.runtime.version = 11的.gradle文件。
我在build.gradle中也有这个
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
但是它仍然像这样在deploy(git push heroku master)开始安装jdk8:
Gradle app detected
remote: -----> Spring Boot detected
remote: -----> Installing JDK 1.8... done
remote: -----> Building Gradle app...
remote: -----> executing ./gradlew build -x test
remote: Downloading https://services.gradle.org/distributions/gradle-5.4.1-all.zip
这是部署失败的图像和设置的环境变量。
我已经遇到这个问题一个星期了,我想我已经尽力了,但是如果有人可以帮助我,我将非常感激。谢谢!
答案 0 :(得分:3)
我遇到同样的问题,收到“使用工具链JDK 8的Java SE 11”错误。谷歌搜索问题之后,提示我使用JAVA_HOME设置。
我使用sdkman管理我的Java和Kotlin版本的当前版本设置,因此在检查了sdkman中配置的当前Java版本之后,我意识到它指向的是针对Java 8的GraalVM 19版本。
所以我只是用“ sdkman use java 11.0.1-zulu”将当前的JAVA_HOME恢复为11,一切正常。
Softjake
答案 1 :(得分:1)
通过将system.properties.txt
重命名为system.properties
,听起来像it's okay to answer your own question!。 (顺便说一下,Java Support article)
如果对其他人有帮助,请参阅Heroku的官方文档:
创建一个
system.properties
文件(如果尚不存在),指定版本,并将其提交到git。受支持的版本在https://devcenter.heroku.com/articles/customizing-the-jdk#specify-a-jdk-version中进行了描述。该文件的内容应如下所示:java.runtime.version=11
答案 2 :(得分:0)
我在Linux Ubuntu中使用openjdk 11时遇到了同样的问题。
但这在我的工作笔记本电脑上还可以。相同的操作系统Ubuntu 18.04 LTS。
我在笔记本电脑中检查了JDK的版本:
/usr/lib/jvm/java-11-openjdk-amd64/bin/java
但内部使用的是工具链:“ JDK 10(1.10)” 所以我收到了这个消息
using tool chain: 'JDK 10 (1.10)'
我检查了我的工作笔记本电脑,它有
openjdk version "11.0.4" 2019-07-16
OpenJDK Runtime Environment AdoptOpenJDK (build 11.0.4+11)
OpenJDK 64-Bit Server VM AdoptOpenJDK (build 11.0.4+11, mixed mode)
在搜索openjdk时,我发现了此站点 https://adoptopenjdk.net 我可以在其中获得OpenJDK 11(LTS)build 11.0.4 + 11
在将其添加到替代项之后
sudo update-alternatives --install "/usr/bin/java" "java" "/usr/lib/jvm/jdk-11.0.4+11/bin/java" 1
sudo update-alternatives --install "/usr/bin/javac" "javac" "/usr/lib/jvm/jdk-11.0.4+11/bin/javac" 1
sudo update-alternatives --install "/usr/bin/javadoc" "javadoc" "/usr/lib/jvm/jdk-11.0.4+11/bin/javadoc" 1
然后选择所有人
sudo update-alternatives --config java
sudo update-alternatives --config javac
sudo update-alternatives --config javadoc
问题解决之后。 我希望这可以帮助其他人。
答案 3 :(得分:0)
使用此代码行将 system.properties 文件添加到您的项目中。
java.runtime.version=11
答案 4 :(得分:0)
我不知道为什么,heroku 没有检测到 gradle 版本提供的
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
一旦我将其更改为纯字符串,就会检测到 JDK 11
sourceCompatibility = '11'
targetCompatibility = '11'
结果:
remote: -----> Building on the Heroku-20 stack
remote: -----> Using buildpack: heroku/jvm
remote: -----> heroku-deploy app detected
remote: -----> Installing JDK 11... done
remote: -----> Discovering process types
remote: Procfile declares types -> web