UnsupportedClassVersionError异常的解决

系统中安装了两个版本的jdk(5.0和6.0)。

由于之前用xscoket高版本时,最低版本必须为jdk6.0,于是在eclipse中统一设置了使用jdk6.0进行编译。但之前的一些遗留系统仍然保留的是jdk5.0环境。

 

今天,测试一段代码。抛出此错误。

 

java.lang.UnsupportedClassVersionError: Bad version number in .class file

at java.lang.ClassLoader.defineClass1(Native Method)

at java.lang.ClassLoader.defineClass(ClassLoader.java:620)

at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:124)

at java.net.URLClassLoader.defineClass(URLClassLoader.java:260)

at java.net.URLClassLoader.access$100(URLClassLoader.java:56)

at java.net.URLClassLoader$1.run(URLClassLoader.java:195)

at java.security.AccessController.doPrivileged(Native Method)

at java.net.URLClassLoader.findClass(URLClassLoader.java:188)

at java.lang.ClassLoader.loadClass(ClassLoader.java:306)

at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268)

at java.lang.ClassLoader.loadClass(ClassLoader.java:251)

at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)

Exception in thread "main" 

 

从异常栈信息来说,Bad Version number in .class file 已经是非常明确的指示!

是因为我们使用高版本的JDK编译的Java class文件试图在较低版本的JVM上运行,所报的错误。因为,高版本的JDK生成的class文件使用的格式,可能与低版本的JDK的.class文件

 

格式不同。这样,低版本的JVM无法解释执行这个.class文件,会抛出java.lang.UnsupportedClassVersionError不支持的Class版本错误。这个错误尤其在JDK5与JDK5之前的版本

 

上表现明显。因为,JDK5在Java语法上作了不少增强,引入了一些新的.class文件的元素,导致旧版本的JVM无法解释、执行.class文件。

 

这时候只需要把项目用的JDK与你安装的JDK搞成版本一样就解决了。使用的ide为Eclipse。

步骤:右击你的项目-->属性-->Java Compiler,设置合适的版本!!

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: UnsupportedClassVersionError是Java程序运行时的一个异常,表示JVM无法识别当前类文件的版本。这通常是由于使用了较新版本的Java编译器编译的类文件,而运行该程序的JVM版本较旧所导致的。解决方法是升级JVM版本或者重新编译该类文件。 ### 回答2: UnsupportedClassVersionError是Java虚拟机抛出的异常,表示某个类的版本不受支持。这个异常通常在运行Java程序时出现。当虚拟机在加载或链接某个类的过程中发现该类的版本高于当前虚拟机所支持的版本时,就会抛出UnsupportedClassVersionError异常。 通常情况下,这个异常是由于使用了高版本的Java编译器编译的类文件,在低版本的Java虚拟机中运行而产生的。也就是说,编译的Java程序使用了较新的Java语法或功能,在较旧的Java虚拟机中无法识别或支持。 解决这个异常的方法是使用相应版本的Java开发工具重新编译问题类,或者更新Java虚拟机以支持高版本的Java程序。通过查看Java Class文件的版本号,确定所支持的Java虚拟机版本,再根据需要决定是否升级Java开发工具和环境。 在开发和部署Java应用程序时,需要特别注意Java版本的兼容性。在开发时,应该明确使用的Java版本,并使用相应的编译器编译代码;在部署时,要求目标环境的Java虚拟机版本大于或等于开发使用的Java版本,以避免出现UnsupportedClassVersionError异常。 ### 回答3: UnsupportedClassVersionError是Java中的一个异常,指示类文件的版本与当前JVM的版本不兼容。 当使用较新版本的Java编译器编译源代码时,会生成一个对应的类文件。该类文件包含了与特定Java版本兼容的字节码指令。当尝试在较旧版本的JVM上运行这个类文件时,就会抛出UnsupportedClassVersionError异常。 这个异常通常发生在以下情况下: 1. 使用较新版本的Java编译器编译类文件,然后尝试在较旧版本的JVM上运行它。 2. 使用较新版本的Java运行时环境(JRE)运行类文件,然后尝试在较旧版本的JVM上运行它。 解决UnsupportedClassVersionError异常的方法是: 1. 检查JVM的版本,确保它与类文件的版本兼容。可以使用命令`java -version`来检查JVM的版本。 2. 更新JVM到与类文件版本兼容的最新版本。 3. 重新编译源代码,并确保使用与目标JVM版本兼容的Java编译器。 4. 确保在运行程序时使用正确的JRE版本。 总之,UnsupportedClassVersionError异常是由于类文件的版本与当前JVM的版本不兼容引起的。需要检查JVM版本,并确保使用与目标JVM版本兼容的类文件和运行环境。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值