java 运行报错has been compiled by a more recent version of the Java Runtime

javaweb运行报错:has been compiled by a more recent version of the Java Runtime (class file version 55.0)

报错信息:

Exception in thread "main" java.lang.UnsupportedClassVersionError: pers/cyz/BookManage has been compiled by a more recent version of the Java Runtime (class file version 54.0), this version of the Java Runtime only recognizes class file versions up to 52.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)

解决办法:

在项目的属性里设置jdk版本,方法是右击项目-->properties-->java compiler --> Enable project specific settings -->将compiler compliance level设置为1.8,也就是与jvm一致的版本

一般这样的错误都是因为当前的jre不能对程序进行编译,Tomcat的版本高于JDK的版本导致的,当前运行的jdk是1.8而我用的Tomcat版本是Tomcat 9所以就会出现这个问题。

解决方法:

要么降低Tomcat的版本号,要么用更高的版本的JRE。

这里我选择使用高版本的JRE:

重启服务器再次运行项目,问题解决。

eclipse运行Java代码出现原因很多,具体问题具体分析。

解决方案:
如果是web项目,不要在打开的文件上右击,要到项目路径上去右击”run as“,之后选择“server”。
如果是mian方法项目,需要找到带有main方法的类,之后打开这个类,之后“run as”,之后选择“java applet”即可。

到此这篇关于java 运行报错has been compiled by a more recent version of the Java Runtime的文章就介绍到这了,更多相关java has been compiled by a more recent version内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • java时间戳与日期相互转换工具详解

    本文为大家分享了java日期与时间戳相互转换大全,供大家参考,具体内容如下 package com.crm.util; import java.math.BigDecimal; import java.text.DecimalFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * @auth

  • Java 日期时间工具包–java.time的使用

    从JDK8开始,Java 提供了新的日期时间处理方法用来代替旧的日期类(Date).本章主要讲它们的用法以及和旧日期类互转. 日期和时间 Java 新的日期工具类在 java.time 包及子包中 ,日期类主要有 LocalDateTime.LocalDate.LocalTime ,这三个API类很相似,以下是常用API及说明. now() 静态方法,获取当前时间日期.示例:LocalDateTime.now() of() 静态方法,指定日期时间生成LoalDateTime.示例:LocalDa

  • java字符串与日期类型转换的工具类

    常用的字符串转date,和日期转字符串的方法,具体内容如下 package com.cq2022.zago.base.util; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.GregorianCalendar; import javax.xml.datatype.Dat

  • Java8中LocalDateTime与时间戳timestamp的互相转换

    Java8 LocalDateTime与timestamp转换 将timestamp转为LocalDateTime public LocalDateTime timestamToDatetime(long timestamp){ Instant instant = Instant.ofEpochMilli(timestamp); return LocalDateTime.ofInstant(instant, ZoneId.systemDefault()); } 将LocalDataTime转为t

  • java实现的日期时间转换工具类完整示例

    本文实例讲述了java实现的日期时间转换工具类.分享给大家供大家参考,具体如下: 最基础的东西,总结一下,下次用的时候就方便一些了.废话不多说,直接贴代码: package com.incar.base.util; import com.incar.base.exception.BaseRuntimeException; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDat

  • Java8的DateTimeFormatter与SimpleDateFormat的区别详解

    两者最大的区别是,Java8的DateTimeFormatter是线程安全的,而SimpleDateFormat并不是线程安全. package com.main; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter;

  • java处理日期的工具类DateUtil

    java中处理日期的工具类DateUtil,供大家参考,具体内容如下 package com.leo.demo.othertest; import org.slf4j.LoggerFactory; import java.sql.Timestamp; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar;

  • Java 8新时间日期库java.time的使用示例

    Instant--它代表的是时间戳 LocalDate--不包含具体时间的日期,比如 2020-01-14.它可以用来存储生日,周年纪念日,入职日期等. LocalTime--它代表的是不含日期的时间 LocalDateTime--它包含了日期及时间,不过还是没有偏移信息或者说时区. ZonedDateTime--这是一个包含时区的完整的日期时间,偏移量是以 UTC / 格林威治时间为基准的. Java 8 是如何处理时间及日期的 示例 1 如何 在 Java 8 中获取当天的日期 LocalD

  • java常用工具类 Date日期、Mail邮件工具类

    本文实例为大家分享了java常用工具类的具体实现代码,供大家参考,具体内容如下 package com.jarvis.base.util; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Calendar; import java.util.Date; /** * * * @Title: DateHelper.java * @Package com.jarvis.base.u

  • 史上最全Java8日期时间工具类(分享)

    这是我总结的Java8日期工具类,应该是比较全面的,满足日常开发绝大部分需求,分享给大家,有错误之处,还望大神指教. /** * Java8日期时间工具类 * * @author JourWon * @date 2020/12/13 */ public class LocalDateUtils { /** * 显示年月日时分秒,例如 2015-08-11 09:51:53. */ public static final String DATETIME_PATTERN = "yyyy-MM-dd

  • java日期时间操作工具类

    本文实例为大家分享了java日期时间操作工具类,供大家参考,具体内容如下 虽然jdk1.8开始,加入了time包,里面对时区,本地化时间,格式化,以及时间等做了很好的封装,但仍然要写一个工具类.大家看着用.应该没有bug.如果发现了,请您一定告知,互相学习!好了,上代码: package com.wdy.tools.utils.timeutil; import java.text.DateFormat; import java.text.SimpleDateFormat; import java

  • Java中joda日期格式化工具的使用示例

    1.基本介绍 Java自带日期格式化工具DateFormat ,但是DateFormat 的所有实现,包括 SimpleDateFormat 都不是线程安全的,因此你不应该在多线程序中使用,除非是在对外线程安全的环境中使用,如 将 SimpleDateFormat 限制在 ThreadLocal 中.如果你不这么做,在解析或者格式化日期的时候,可能会获取到一个不正确的结果.因此,从日期.时间处理的所有实践来说,我强力推荐使用joda-time 库. 2.joda-time的使用 引入依赖 <de

随机推荐