java - cf 推送失败 Java 版本不匹配

我正在尝试将“spring-music”演示应用程序推送到我的本地开发云平台,但出现以下错误。当我运行命令“cf logs spring-music --recent”时,我得到了以下输出。

2020-10-21T00:41:39.96+0300 [APP/PROC/WEB/0] OUT JVM Memory Configuration: -Xmx408076K -Xss1M -XX:ReservedCodeCacheSize=240M -XX:MaxDirectMemorySize=10M -XX:MaxMetaspaceSize=128499K
   2020-10-21T00:41:40.64+0300 [APP/PROC/WEB/0] ERR Exception in thread "main" java.lang.UnsupportedClassVersionError: org/cloudfoundry/samples/music/Application has been compiled by a more recent version of the Java Runtime (class file version 55.0), this version of the Java Runtime only recognizes class file versions up to 52.0                                                                                                                                                                                                                   
   2020-10-21T00:41:40.64+0300 [APP/PROC/WEB/0] ERR     at java.lang.ClassLoader.defineClass1(Native Method)
   2020-10-21T00:41:40.64+0300 [APP/PROC/WEB/0] ERR     at java.lang.ClassLoader.defineClass(ClassLoader.java:756)
   2020-10-21T00:41:40.64+0300 [APP/PROC/WEB/0] ERR     at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
   2020-10-21T00:41:40.64+0300 [APP/PROC/WEB/0] ERR     at java.net.URLClassLoader.defineClass(URLClassLoader.java:468)
   2020-10-21T00:41:40.64+0300 [APP/PROC/WEB/0] ERR     at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
   2020-10-21T00:41:40.64+0300 [APP/PROC/WEB/0] ERR     at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
   2020-10-21T00:41:40.64+0300 [APP/PROC/WEB/0] ERR     at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
   2020-10-21T00:41:40.64+0300 [APP/PROC/WEB/0] ERR     at java.security.AccessController.doPrivileged(Native Method)
   2020-10-21T00:41:40.64+0300 [APP/PROC/WEB/0] ERR     at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
   2020-10-21T00:41:40.64+0300 [APP/PROC/WEB/0] ERR     at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
   2020-10-21T00:41:40.64+0300 [APP/PROC/WEB/0] ERR     at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:92)
   2020-10-21T00:41:40.64+0300 [APP/PROC/WEB/0] ERR     at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
   2020-10-21T00:41:40.64+0300 [APP/PROC/WEB/0] ERR     at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:46)
   2020-10-21T00:41:40.64+0300 [APP/PROC/WEB/0] ERR     at org.springframework.boot.loader.Launcher.launch(Launcher.java:87)
   2020-10-21T00:41:40.64+0300 [APP/PROC/WEB/0] ERR     at org.springframework.boot.loader.Launcher.launch(Launcher.java:51)
   2020-10-21T00:41:40.64+0300 [APP/PROC/WEB/0] ERR     at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:52)

最佳答案

同时 Giorgi's answer也是正确的,您可能只想使用 Java 11 来运行您的应用。

您可以告诉 Java buildpack 您想要安装 Java 11 而不是默认的(在我写这篇文章时),即 Java 8。

运行 cf set-env <app-name> JBP_CONFIG_OPEN_JDK_JRE '{jre: { version: 11.+ }}'针对您的应用程序或将该环境变量添加到您的 manifest.yml 中。然后 cf restage你的应用程序。 Java buildpack 会看到它并自动为您安装 Java 11。

https://stackoverflow.com/questions/64454073/

相关文章:

javascript - 我怎样才能解构一个 React Prop 并仍然访问其他 Prop ?

ios - 从初始化器返回而不初始化所有存储的属性 - SwiftUI 绑定(bind)错误

haskell - 获取haskell中字符串的所有旋转

c# - 如何在 ASP Core 的静态类中使用 "IWebHostEnvironment"

python - Pandas 数据框拆分并获取列表的最后一个元素

r - 匹配和替换字符向量中的单词

javascript - Angular 子组件无法识别输入更改

java - 首次安装应用程序时无法解析 android 11 中的 com.android.cam

c - 可能知道变量所在的内存部分?

vim - 如何在没有重新映射的情况下仅使用一个命令在 Neovim 的新选项卡中打开终端?