[英]what is java.lang.UnsupportedClassVersionError?
什么是java.lang.UnsupportedClassVersionError
?
我從文檔中讀到: 當Java虛擬機嘗試讀取類文件並確定文件中的主要和次要版本號不受支持但是無法理解這意味着什么時拋出 。
文件中的主要版本和次要版本是什么?
當拋出以下異常時,我在其他機器上啟動了一個應用程序:
Exception in thread "main" java.lang.UnsupportedClassVersionError: client (Unsupported major.minor version 51.0)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:123)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:251)
at java.net.URLClassLoader.access$100(URLClassLoader.java:55)
at java.net.URLClassLoader$1.run(URLClassLoader.java:194)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:187)
at java.lang.ClassLoader.loadClass(ClassLoader.java:289)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:274)
at java.lang.ClassLoader.loadClass(ClassLoader.java:235)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:302)
雖然它在我的機器上工作正常。
不同版本的JDK編譯器生成不同的類版本。 例如,Java 1.4生成48.0,1.5生成49.0和1.6 50.0。
JVM通常能夠從JVM中加載比自身“更小”但從不更大的類。 您可能正在嘗試在1.5 JVM等上使用為1.6編譯的類。
如果您感興趣,找到類版本的好工具是bcel 。 特別是,它有一套很好的ant任務。
這意味着您的編譯器版本比您嘗試運行類的jvm版本更新。 要么降級機器的java編譯器,要么升級其他機器的運行時jvm。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.