我正在尝试部署一个使用JDK 11的spring引导应用程序,但是当构建在Heroku上时,它会安装OpenJdk 1.8:
-----> Uploading build...
- success
-----> Deploying...
remote:
remote: -----> Building on the Heroku-22 stack
remote: -----> Using buildpack: heroku/jvm
remote: -----> heroku-deploy app detected
remote: -----> Installing OpenJDK 1.8... done
remote: -----> Discovering process types
remote: Procfile declares types -> web
remote:
remote: -----> Compressing...
remote: Done: 106.2M
remote: -----> Launching...
remote: Released v14虽然我在项目的根目录中创建了一个'system.properties‘文件,并将其提交给git java.runtime.version=11,但它仍然安装了OpenJdk 1.8,而不是11。
这是Heroku Cli的例外:
2022-10-23T18:03:37.124247+00:00 heroku[web.1]: State changed from starting to crashed
2022-10-23T18:03:37.127120+00:00 heroku[web.1]: State changed from crashed to starting
2022-10-23T18:03:41.139758+00:00 heroku[web.1]: Starting process with command `java $JAVA_OPTS -jar SeniorCare-0.0.1-SNAPSHOT.jar $JAR_OPTS`
2022-10-23T18:03:42.062965+00:00 app[web.1]: Setting JAVA_TOOL_OPTIONS defaults based on dyno size. Custom settings will override them.
2022-10-23T18:03:42.069472+00:00 app[web.1]: Picked up JAVA_TOOL_OPTIONS: -Xmx300m -Xss512k -XX:CICompilerCount=2 -Dfile.encoding=UTF-8
2022-10-23T18:03:42.544439+00:00 heroku[web.1]: Process exited with status 1
2022-10-23T18:03:42.646566+00:00 heroku[web.1]: State changed from starting to crashed
2022-10-23T18:03:42.408259+00:00 app[web.1]: Exception in thread "main" java.lang.UnsupportedClassVersionError: dsi/senior/SeniorCareApplication 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
2022-10-23T18:03:42.408398+00:00 app[web.1]: at java.lang.ClassLoader.defineClass1(Native Method)
2022-10-23T18:03:42.408445+00:00 app[web.1]: at java.lang.ClassLoader.defineClass(ClassLoader.java:757)
2022-10-23T18:03:42.408507+00:00 app[web.1]: at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
2022-10-23T18:03:42.408597+00:00 app[web.1]: at java.net.URLClassLoader.defineClass(URLClassLoader.java:473)
2022-10-23T18:03:42.408637+00:00 app[web.1]: at java.net.URLClassLoader.access$100(URLClassLoader.java:74)
2022-10-23T18:03:42.408674+00:00 app[web.1]: at java.net.URLClassLoader$1.run(URLClassLoader.java:369)
2022-10-23T18:03:42.408712+00:00 app[web.1]: at java.net.URLClassLoader$1.run(URLClassLoader.java:363)
2022-10-23T18:03:42.408768+00:00 app[web.1]: at java.security.AccessController.doPrivileged(Native Method)
2022-10-23T18:03:42.408826+00:00 app[web.1]: at java.net.URLClassLoader.findClass(URLClassLoader.java:362)
2022-10-23T18:03:42.408878+00:00 app[web.1]: at java.lang.ClassLoader.loadClass(ClassLoader.java:419)
2022-10-23T18:03:42.408940+00:00 app[web.1]: at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:151)
2022-10-23T18:03:42.408997+00:00 app[web.1]: at java.lang.ClassLoader.loadClass(ClassLoader.java:352)
2022-10-23T18:03:42.409054+00:00 app[web.1]: at java.lang.Class.forName0(Native Method)
2022-10-23T18:03:42.409099+00:00 app[web.1]: at java.lang.Class.forName(Class.java:348)
2022-10-23T18:03:42.409161+00:00 app[web.1]: at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:46)
2022-10-23T18:03:42.409220+00:00 app[web.1]: at org.springframework.boot.loader.Launcher.launch(Launcher.java:108)
2022-10-23T18:03:42.409255+00:00 app[web.1]: at org.springframework.boot.loader.Launcher.launch(Launcher.java:58)
2022-10-23T18:03:42.409297+00:00 app[web.1]: at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:88)发布于 2022-10-23 19:19:59
默认情况下,Heroku为Java应用程序使用JDK1.8。
您可以通过在system.properties文件中指定Java版本来更改这一点。
java.runtime.version=<jdk_version> (e.g. 11)有关更多信息,请看一下这。
https://stackoverflow.com/questions/74173561
复制相似问题