今天编译时遇到一个错误unsupported major.minor version50.0,看到这个错误的时候, 我首先想到了是java编译器版本的问题,因为我PC默认的JDK是1.7,但是在Eclipse里面默认的是1.6,当我调整了JDK的版本后,这个问题就解决了。
回到问题的本身,major和minor是什么呢?Google一下可以得到很多信息,它实际上是软件的主次版本号,51是主版本号,0是次版本号。怎么能查看到它的版本号呢?java实际也提供了这个命令,javap.
javap -verboase xxx.class
就可以得到这个class文件的一些相关信息,就可以清楚地看到major和minor的值。查看oracle的官网,有更多的javap命令的解释,http://docs.oracle.com/javase/7/docs/technotes/tools/windows/javap.html
在网上找到一个JDK的版本号的表
JDK 编译器版本 | target 参数 | 十六进制 minor.major | 十进制 minor.major |
jdk1.1.8 | 不能带 target 参数 | 00 03 00 2D | 45.3 |
jdk1.2.2 | 不带(默认为 -target 1.1) | 00 03 00 2D | 45.3 |
jdk1.2.2 | -target 1.2 | 00 00 00 2E | 46.0 |
jdk1.3.1_19 | 不带(默认为 -target 1.1) | 00 03 00 2D | 45.3 |
jdk1.3.1_19 | -target 1.3 | 00 00 00 2F | 47.0 |
j2sdk1.4.2_10 | 不带(默认为 -target 1.2) | 00 00 00 2E | 46.0 |
j2sdk1.4.2_10 | -target 1.4 | 00 00 00 30 | 48.0 |
jdk1.5.0_11 | 不带(默认为 -target 1.5) | 00 00 00 31 | 49.0 |
jdk1.5.0_11 | -target 1.4 -source 1.4 | 00 00 00 30 | 48.0 |
jdk1.6.0_01 | 不带(默认为 -target 1.6) | 00 00 00 32 | 50.0 |
jdk1.6.0_01 | -target 1.5 | 00 00 00 31 | 49.0 |
jdk1.6.0_01 | -target 1.4 -source 1.4 | 00 00 00 30 | 48.0 |
jdk1.7.0 | 不带(默认为 -target 1.6) | 00 00 00 32 | 50.0 |
jdk1.7.0 | -target 1.7 | 00 00 00 33 | 51.0 |
jdk1.7.0 | -target 1.4 -source 1.4 | 00 00 00 30 | 48.0 |
Apache Harmony 5.0M3 | 不带(默认为 -target 1.2) | 00 00 00 2E | 46.0 |
Apache Harmony 5.0M3 | -target 1.4 | 00 00 00 30 | 48.0 |
可以看出,JDK1.7对应的版本号是50,JDK1.6对应的版本号是49. 低版本的JDK编译的class是可以在高版本的虚拟机上运行的,但是高版本的JDK编译的class是不能再低版本的虚拟机上运行的。
如果我们碰到类似的问题,是否也需要下载一个低版本的JDK来重新编译一次呢?其实java早就帮我们考虑到了这一点,我们在编译的时候可以指明我们要使用哪个版本的JDK,如
javac -target 1.6 **.java
但是有一点事需要注意的,如果你的java文件使用到的是1.7新增的一些feature,再指定到1.6编译,肯定是不行的。
相关推荐
Unsupported major.minor version 51.0 错误是 Java 开发中常见的一种错误,原因是 Java 类文件的版本不匹配。下面我们将详细介绍该错误的原因、解决办法以及相关的 Java 知识点。 Java 类文件版本 Java 类文件的...
在Java编程中,"Unsupported major.minor version 51.0"是一个常见的错误,它通常发生在尝试使用较旧版本的Java虚拟机(JVM)运行由较新版本的Java编译器编译的代码时。这个错误信息表示JVM无法识别或支持编译后的...
在Java开发过程中,我们经常会遇到Tomcat报错Unsupported major.minor version xxx的问题。这是因为编译的JDK版本和运行时所用的JDK版本不一致所导致的。在本文中,我们将详细介绍解决这个问题的方法,并对相关的...
此外,还要注意错误处理和内存管理,因为库本身通常不会处理这些细节。 总之,JPEGlib 61版本提供了一个在VC环境下处理JPEG图像的强大工具,通过其API可以实现图像的编码、解码和许多其他相关操作。正确理解和使用...
Javarebel是一个Jvm插件,它能够动态重新装载Java类特性。虽然现在还有些局限性,但它可以显著地增加开发速度。JavaRebel允许一个应用程序(独立的或运行在应用服务器上的应用)重新装载在运行过程中发生的大多数类...
包含selenium-server-standalone-3.0.1.jar,selenium-java-2.53.0.jar,selenium-java-2.53.0-srcs.jar及自动化测试所需要的jar包
在Android开发中,有时我们需要将资源文件(如图片、XML配置等)与Java代码一起打包成JAR文件,以便于库或插件的分发。然而,Android原生不支持直接从JAR中读取资源文件,这给开发者带来了挑战。本文将详细探讨如何...
Caused by:xxx Unsupported major.minor version 52.0。翻译为中文:(Tomcat)不支持52.0版本的镜像 二、jdk与major.mijor version对应的关系如下 JDK 1.1 = 45 JDK 1.2 = 46 JDK 1.3 = 47 JDK 1.4 = 48 JDK 1.5 = ...
错误信息"Unsupported major.minor version 49.0"中的49.0代表的就是Java字节码版本号,对应于JDK1.5。当1.5编译的类尝试在1.4环境中加载时,由于1.4环境无法理解1.5的字节码格式,因此抛出此错误。 针对这个问题,...
在开发和部署过程中,确保编译环境和运行环境的Java版本一致性是避免`Unsupported major.minor version`错误的重要措施。通过使用适当的编译选项,可以生成与目标JVM版本兼容的类文件,从而确保程序的正确执行。
- `Unsupported major.minor version 51.0`:表明这个类文件是由Java 9或更高版本编译的,其中主版本号为51。 2. **问题根源**: - 类文件的编译环境与运行环境不匹配。例如,如果一个类文件是在Java 9或更高版本...
3:如果出现 Unsupported major.minor version 52.0 则表示该文件的版本与本地的jdk版本不匹配 经测试 jdk1.7.0使用1.05版本的AndroidKeystore jdk1.8.0使用1.07版本的AndroidKeystore (资源里面两个版本的都有) ...
### Flex与Java通信常见错误分析 #### 一、Send Failed 错误 在Flex与Java进行通信时,可能会遇到如下的RPC Fault错误: ``` RPC Fault faultString="Send failed" faultCode="Client.Error.MessageSend" ...
3:如果出现 Unsupported major.minor version 52.0 则表示该文件的版本与本地的jdk版本不匹配 经测试 jdk1.7.0使用1.05版本的AndroidKeystore jdk1.8.0使用1.07版本的AndroidKeystore (资源里面两个版本的都有) ...
geohash官方发布以及maven发布的版本都是基于jdk1.7编译的,碰到jdk1.6的项目会报unsupported major.minor version 51.0错误。这个资源是我基于jdk1.6编译的,执行测试案例都通过了。
当我们引入的jar包和本地的jdk版本有冲突的情况下,会报一下错误:java.lang.UnsupportedClassVersionError:com/sun/tools/javac/Main : Unsupported major.minor version 51.0,所以我们需要强制给jar依赖的jdk版本...
spatial4j官方发布以及maven发布的版本都是基于jdk1.7编译的,碰到jdk1.6的项目会报unsupported major.minor version 51.0错误。这个资源是我基于jdk1.6编译的,执行测试案例都通过了。
java.lang.UnsupportedClassVersionError: org/apache/catalina/authenticator/FormAuthenticator : Unsupported major.minor version 51.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang....
TRIfA桌面 建置状态 CircleCI: 安装和启动应用程序[Linux,Windows和MacOS] 安装JRE 11或JDK 11。...提示:如果收到此错误, Unsupported major.minor version 55.0 ,则需要安装Java 11运行时才能运行客户端