`
david_je
  • 浏览: 372005 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

java常见错误之unsupported major.minor version

    博客分类:
  • java
 
阅读更多

          今天编译时遇到一个错误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

    Unsupported major.minor version 51.0 错误是 Java 开发中常见的一种错误,原因是 Java 类文件的版本不匹配。下面我们将详细介绍该错误的原因、解决办法以及相关的 Java 知识点。 Java 类文件版本 Java 类文件的...

    Java 中解决Unsupported major.minor version 51.0的问题

    在Java编程中,"Unsupported major.minor version 51.0"是一个常见的错误,它通常发生在尝试使用较旧版本的Java虚拟机(JVM)运行由较新版本的Java编译器编译的代码时。这个错误信息表示JVM无法识别或支持编译后的...

    启动Tomcat报错Unsupported major.minor version xxx的解决方法

    在Java开发过程中,我们经常会遇到Tomcat报错Unsupported major.minor version xxx的问题。这是因为编译的JDK版本和运行时所用的JDK版本不一致所导致的。在本文中,我们将详细介绍解决这个问题的方法,并对相关的...

    jpeglib_version_61

    此外,还要注意错误处理和内存管理,因为库本身通常不会处理这些细节。 总之,JPEGlib 61版本提供了一个在VC环境下处理JPEG图像的强大工具,通过其API可以实现图像的编码、解码和许多其他相关操作。正确理解和使用...

    javarebel.jar

    Javarebel是一个Jvm插件,它能够动态重新装载Java类特性。虽然现在还有些局限性,但它可以显著地增加开发速度。JavaRebel允许一个应用程序(独立的或运行在应用服务器上的应用)重新装载在运行过程中发生的大多数类...

    selenium自动化测试jar包

    包含selenium-server-standalone-3.0.1.jar,selenium-java-2.53.0.jar,selenium-java-2.53.0-srcs.jar及自动化测试所需要的jar包

    Android如何处理带资源文件的JAR

    在Android开发中,有时我们需要将资源文件(如图片、XML配置等)与Java代码一起打包成JAR文件,以便于库或插件的分发。然而,Android原生不支持直接从JAR中读取资源文件,这给开发者带来了挑战。本文将详细探讨如何...

    commons-compress包

    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 = ...

    jdk1.5环境下编译的jar包在JDK1.4环境下运行

    错误信息"Unsupported major.minor version 49.0"中的49.0代表的就是Java字节码版本号,对应于JDK1.5。当1.5编译的类尝试在1.4环境中加载时,由于1.4环境无法理解1.5的字节码格式,因此抛出此错误。 针对这个问题,...

    查看java类版本.pdf

    在开发和部署过程中,确保编译环境和运行环境的Java版本一致性是避免`Unsupported major.minor version`错误的重要措施。通过使用适当的编译选项,可以生成与目标JVM版本兼容的类文件,从而确保程序的正确执行。

    Java编译错误-UnsupportedClassVersionError.txt

    - `Unsupported major.minor version 51.0`:表明这个类文件是由Java 9或更高版本编译的,其中主版本号为51。 2. **问题根源**: - 类文件的编译环境与运行环境不匹配。例如,如果一个类文件是在Java 9或更高版本...

    Android 签名文件找回密码

    3:如果出现 Unsupported major.minor version 52.0 则表示该文件的版本与本地的jdk版本不匹配 经测试 jdk1.7.0使用1.05版本的AndroidKeystore jdk1.8.0使用1.07版本的AndroidKeystore (资源里面两个版本的都有) ...

    flex与 java 通信常见错误

    ### Flex与Java通信常见错误分析 #### 一、Send Failed 错误 在Flex与Java进行通信时,可能会遇到如下的RPC Fault错误: ``` RPC Fault faultString="Send failed" faultCode="Client.Error.MessageSend" ...

    Android_Keystore_Password_Recover_1.07.jar

    3:如果出现 Unsupported major.minor version 52.0 则表示该文件的版本与本地的jdk版本不匹配 经测试 jdk1.7.0使用1.05版本的AndroidKeystore jdk1.8.0使用1.07版本的AndroidKeystore (资源里面两个版本的都有) ...

    geohash.jar geohash-1.3.0

    geohash官方发布以及maven发布的版本都是基于jdk1.7编译的,碰到jdk1.6的项目会报unsupported major.minor version 51.0错误。这个资源是我基于jdk1.6编译的,执行测试案例都通过了。

    Retrotranslator

    当我们引入的jar包和本地的jdk版本有冲突的情况下,会报一下错误:java.lang.UnsupportedClassVersionError:com/sun/tools/javac/Main : Unsupported major.minor version 51.0,所以我们需要强制给jar依赖的jdk版本...

    spatial4j.jar spatial4j-0.8.jar

    spatial4j官方发布以及maven发布的版本都是基于jdk1.7编译的,碰到jdk1.6的项目会报unsupported major.minor version 51.0错误。这个资源是我基于jdk1.6编译的,执行测试案例都通过了。

    spring-boot-web-JBoss5

    java.lang.UnsupportedClassVersionError: org/apache/catalina/authenticator/FormAuthenticator : Unsupported major.minor version 51.0 at java.lang.ClassLoader.defineClass1(Native Method) at java.lang....

    java_toxclient_example:TRIfA桌面-Java Tox客户端

    TRIfA桌面 建置状态 CircleCI: 安装和启动应用程序[Linux,Windows和MacOS] 安装JRE 11或JDK 11。...提示:如果收到此错误, Unsupported major.minor version 55.0 ,则需要安装Java 11运行时才能运行客户端

Global site tag (gtag.js) - Google Analytics