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內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!