低版本jdk运行高版本编译jar包失败(class file version 61.0), this version of the Java Runtime class file 52.0

这篇具有很好参考价值的文章主要介绍了低版本jdk运行高版本编译jar包失败(class file version 61.0), this version of the Java Runtime class file 52.0。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

省流:使用jdk1.8执行17编译的包,启动报错。

背景:

        项目运行中难免出现服务器环节集成其它jar包的情况,而其它jar包的jdk版本可能和我们业务项目的jdk版本不一致,如果比我们业务版本低,那么可能不会出现问题, 因为jdk向下兼容,如果jdk版本比我们业务版本高,可能就会出现编译无法运行的情况。

我遇到的问题:

        我的业务项目A是一个springboot项目,部署在服务器上,服务器的运行环境为jdk1.8,现在我需要在这个服务器上部署另外一个项目B,但是项目B使用的编译环境为17(但是项目B需要没有8版本以上的代码写法,如果你的项目B有8以上的写法,可能无法使用17编译成8的版本启动!

        然后我在1.8的jdk运行环境下执行17编译的包,启动提示报错信息:

Java Runtime (class file version 61.0), this version of the Java Runtime only recognizes class file
class file version 61.0,学习记录,java,jar,jdk

Exception in thread "main"

java.lang.UnsupportedClassVersionError:

com/nuctech/init/WebApplication has been compiled by

amore recent version of the Java Runtime

(class file version 61.0) this version of the Java Runtime

only recognizes class file versions up to 52

class file version 61.0,学习记录,java,jar,jdk

原因分析:

                报错大意为:无法使用1.8的环境(52对应jdk1.8)运行17(61对应的jdk17)的程序。

解决方案:

        一:设置编译的jdk环境为低版本环境:

        如果你使用Maven来编译代码, 在Maven的pom.xml文件中,添加配置:
<properties>
    <maven.compiler.source>8</maven.compiler.source>
    <maven.compiler.target>8</maven.compiler.target>
</properties>

        如果你使用Gradle来编译代码,在Gradle的build.gradle文件中,配置:
tasks.withType(JavaCompile) {
    sourceCompatibility = '8'
    targetCompatibility = '8'
}

二:设置运行的jdk环境为高版本环境

        安装jdk17,修改环境变量为17的环境变量,这样既可以向下兼容项目A 又可以支持项目B,但是可能因为jdk环境不一样带来其它问题, 这个大家只能自己根据项目实际情况去测试

        三:使用docker容器, 容器内部指定每个项目的jdk版本,如在项目A指定jdk8 在项目B的容器指定jdk17

参考资料

                jdk17编译出兼容jdk8的代码
                


 文章来源地址https://www.toymoban.com/news/detail-786712.html

到了这里,关于低版本jdk运行高版本编译jar包失败(class file version 61.0), this version of the Java Runtime class file 52.0的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • jdk21升级,asm报错Unsupported class file major version 65

    jdk21升级,asm报错,spring-core版本5.3.18,项目springboot版本为2.6.6 本来还以为是asm包的问题,还特意把asm升级到了9.6,但不是因为那个原因,而经排查是因为spring-core5.3.18版本最高支持jdk19导致的 支持版本写死了,在这里: org.springframework.asm.Opcodes#V19 版本校验: org.springframewor

    2024年02月01日
    浏览(64)
  • Unsupported class file major version 61

    简介:illegalargumentexception:不支持的类文件主版本61,jdk版本过高 项目场景:在maven框架下,基于注解的SpringAOP项目 分析:nested exception is java.lang.IllegalArgumentException: Unsupported class file major version 61(illegalargumentexception:不支持类文件主要版本61) 表示jdk版本过高,我刚开始用的是

    2024年02月13日
    浏览(61)
  • spring注解报错Unsupported class file major version 63

    学习尚硅谷的spring中的基于注解管理bean时,运行程序测试时报错“Unsupported class file major version 63” 运行测试的时候报错“Unsupported class file major version 63” 报错内容 JDK版本太高了,更换JDK版本即可解决。 第一步,打开settings 第二步,将jdk版本更换为低版本,点击应用apply。

    2024年02月12日
    浏览(54)
  • Decompiled .class file, bytecode version: 52.0 (Java 8)解决办法参考

    今日如往常一样打开项目文件,却发现项目无法运行,文件只可读等问题 (我这里是一个普通的java项目) 即由于 Decompiled .class file, bytecode version: 52.0 (Java 8)   可能是该项目文件在之前的运行过程中出了点问题, 使得代码是从class文件反编译出来的,而不是查看的java源文件

    2024年02月11日
    浏览(44)
  • Android Studio Error “Unsupported class file major version 61“---异常信息记录

    问题出在JAVA 17上,并且使用的Gradle JDK是:Android Studio java home版本17.0.1将其更改为:Android Studio默认JDK版本11.0.10 即可解决 操作步骤 1 2 3

    2024年01月23日
    浏览(41)
  • this version of the Java Runtime only recognizes class file versions up to 52.0

    博客上很多博主说这个是jdk版本的问题,我所有地方都设置的是jdk1.8,但还是报错 Caused by: java.lang.UnsupportedClassVersionError: org/springframework/cloud/bootstrap/RefreshBootstrapRegistryInitializer has been compiled by a more recent version of the Java Runtime (class file version 61.0), this version of the Java Runtime only re

    2024年02月11日
    浏览(112)
  • Spring问题解决: Java Runtime (class file version 55.0), this version of the Java Runtim

    ch/qos/logback/classic/spi/LogbackServiceProvider 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 这只是版本不匹配。已经使用 Java 版本 11 编译了您的代码,而您当前的 JRE 是版本 8。请尝试将您的 JR降级

    2024年02月11日
    浏览(69)
  • 【已解决】this version of the Java Runtime only recognizes class file versions up to 52.0

    在把springboot项目打包了jar之后,准备本地运行一下 然后报错: 编译版本和运行版本不一致,可能是编译版本高于运行版本导致的 修改pom.xml, 将此版本改为 java -version 版本 为 spring-boot-maven-plugin 增加 parent的版本号 如果没指定spring-boot-maven-plugin 的版本,就会拿取最新的版本打

    2023年04月16日
    浏览(115)
  • 彻底解决this version of the Java Runtime only recognizes class file versions up to 52.0

    这个错误的意思是当时开发程序的人使用的JDK的版本要比你现在运行的环境上的JDK版本高。比如他是使用JDK11开发的,然后把程序打包好,你下载了他的jar包到本地运行,然后报错,可能你本地的JDK版本是低于11的,所以报错。 安装JDK21就行。继续看文章下面的对应关系,就知

    2024年02月02日
    浏览(52)
  • 报错java.lang.IllegalArgumentException: Unsupported class file major version 60的解决方案

    使用 maven 集成 spring 在测试的时候报出了如下的异常: Caused by: java.lang.IllegalArgumentException: Unsupported class file major version 60 这个错误意思大概就是:非法参数异常,不支持的类文件主版本60。 猜想应该是版本兼容问题,查找项目中只集成了 spring-context ,版本是 5.2.4.RELEASE ,而

    2024年02月07日
    浏览(60)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包