尝试将我的应用程序部署到heroku,但它一直失败,并出现错误:无法瞄准平台:使用工具链的“Java SE 11”:'JDK 8(1.8)'
我有我的JAVA_HOME,JAVA_PATH,等等。设置,我有一个图像,他们都在这里,我认为他们是正确的。如果我检查java -version和javac -version,它们都显示java 11。
我还尝试将system.properties.txt文件放到根文件夹中,并将.txt文件替换为.gradle文件,其中包含java.runtime.version=11。
我也有这个在我的建设。gradle:
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
但是它会在部署开始时安装jdk 8(git push heroku master),如下所示:
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
下面是部署失败的映像和设置的环境变量。
我一直与这个问题一个星期了,现在,我想我尝试了所有,但我会真的很感激,如果有人能帮助我与此。谢谢你!
6条答案
按热度按时间nwo49xxi1#
我遇到了同样的问题,得到了“Java SE 11使用工具链JDK 8”错误。在谷歌搜索了这个问题之后,我被提示使用JAVA_HOME设置。
我使用sdkman来管理我的Java和Kotlin版本的当前版本设置,所以在检查了sdkman中配置的当前Java版本后,我意识到它指向的是针对Java 8的GraalVM版本19。
所以我简单地用“sdkman use java 11.0.1-zulu”将当前的JAVA_HOME恢复到11,一切都工作正常。
Softjake
wgx48brx2#
使用这行代码将system.properties文件添加到项目中。
lx0bsm1f3#
听起来你已经通过将
system.properties.txt
重命名为system.properties
解决了这个问题。(it's okay to answer your own question!)如果对其他人有帮助,这是Heroku的官方文档:
创建一个
system.properties
文件(如果还不存在),指定版本,然后提交到git。支持的版本在Java支持文章中描述。该文件的内容应类似于以下内容:https://devcenter.heroku.com/articles/customizing-the-jdk#specify-a-jdk-version
ozxc1zmp4#
我在linux Ubuntu中使用openjdk 11时遇到了同样的问题。
但是它在我的工作笔记本电脑上工作还可以。相同的操作系统Ubuntu 18.04 LTS。
我在笔记本电脑中检查了JDK的版本,它是:
但它里面是用工具链:'JDK 10(1.10)'所以我得到了这个消息
我检查我的工作笔记本电脑,它有
在搜索openjdk时,我发现了这个网站https://adoptopenjdk.net,在这里我可以获得OpenJDK 11(LTS)build 11.0.4+11
在我把它加到备选方案中之后
然后选择他们中的每一个
问题解决后。我希望这可以帮助别人。
x8goxv8g5#
我不知道为什么,但heroku不检测由gradle版本提供
一旦我把它改为普通字符串JDK 11被检测到
结果:
trnvg8h36#
在我的例子中,我打开Android Studio,点击“Android gradle插件可以升级”通知来解决这个问题