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

猛不丁地蹦出来的java版本问题

阅读更多

最近经常发现有同事会遇到些莫名其妙的问题,查到后来,全是java版本不对惹的祸。

我简单总结一下java版本错误会出现的现象:
UnsupportedClassVersionError: unsupported classversion 50.0
UnsupportedClassVersionError: unsupported classversion 49.0
等等
出现这样的异常,表示有高版本的class运行在了低版本的jvm上。
50,49,48是class文件的内部开发版本号。48表示是由JDK1.4编译出来的class文件,49表示JDK5.0,50表示JDK6.0
(48,49,50等数字其实就存在于class文件的二进制头8个字节里, 虚拟机就是根据这个标记来判断class文件的版本的,所以我们可以通过打开jar/class文件来查看其编译版本)
低版本的class文件可以运行在高版本的JVM上,反之不行

关于版本数字的一段描述:

1、   魔数 (magic)

为了方便虚拟机识别文件是否是 class 格式的文件, SUN 公司规定每个 class 文件都必须以一个 word(4 个字节 ) 来开始,这个数字就称为魔数。魔数是有 4 个字节的无符号数字构成的,而且规定魔数必须是 0xCAFEBABE

2、   版本号 (version)

魔数后续的内容就是一个 word 的长度来表示生成的 class 文件的版本号,版本号分为主版本号和次版本号,其中前两个字节表示次版本号,后两个字节表示主版本号,排列的顺序遵从高位在前,低位在后的原则。

 

【2008-7 bbs】

分享到:
评论

相关推荐

    ICTCLAS的Java改造版本

    于是自己动手,从原来的C++版本,基本上照搬了一个java版本出来。 初步测试是通过的。先放上来给大家看看,提提意见。 算法和原来的C++程序是完全一样的。 执行com.icutword.result.CResultTest这个类就可以了,...

    java JDK1.8版本下载

    JDK1.8是Oracle公司发布的Java平台标准版(Java SE)的一个重要版本,它在2014年3月18日正式发布,引入了许多新的特性和改进。 **新特性** 1. **Lambda表达式**:这是JDK1.8最重要的特性之一,引入了函数式编程的...

    Java获取可执行文件的版本号

    很多情况下我们需要获取到系统中一些可执行文件的版本号,以便做一些附加动作!其实可以使用jna获取,但是这将依赖人家,所以还是Java自己来吧

    大鱼吃小鱼JAVA版本源代码

    "大鱼吃小鱼"是一款经典的休闲游戏,其JAVA版本的源代码为我们提供了一个学习和研究JAVA编程在游戏开发中的应用的机会。以下是对这个项目的一些关键知识点的详细解析: 1. **JAVA编程语言**:本项目是用JAVA语言...

    解决Spire.Doc for Java各版本需要注册的问题,全功能无限制

    实测解决Spire.Doc for Java各版本需要注册的问题,全功能无限制,去水印,导出的word文件没有Evaluation Warning: The document was created with Spire.Doc for JAVA,不受注册码限制

    JAVA_API1.6文档(中文)

    javax.naming.spi 提供一些方法来动态地插入对通过 javax.naming 和相关包访问命名和目录服务的支持。 javax.net 提供用于网络应用程序的类。 javax.net.ssl 提供用于安全套接字包的类。 javax.print 为 JavaTM ...

    java源码包---java 源码 大量 实例

     Java局域网通信——飞鸽传书源代码,大家都知道VB版、VC版还有Delphi版的飞鸽传书软件,但是Java版的确实不多,因此这个Java文件传输实例不可错过,Java网络编程技能的提升很有帮助。 Java聊天程序,包括服务端和...

    收藏 Java c++通过des加密的结果不一样【已解决】

    ### Java与C++中DES加密不一致的问题及解决方案 #### 问题背景 在进行系统间的交互时,常常需要对敏感数据进行加密处理以确保数据的安全性。DES(Data Encryption Standard,数据加密标准)是一种广泛使用的对称...

    java版本坦克大战源代码

    下面,我们将详细探讨这四种不同模式的Java版本坦克大战源代码。 1. **单人计分模式(TankWar3.1(Score System))** 在这个版本中,游戏的核心功能是计分系统。计分系统是游戏反馈机制的重要组成部分,它能激励...

    Java面试宝典2017版本高清.pdf版

    标题中提到的“Java面试宝典2017版本高清.pdf版”指向了一套针对Java软件开发岗位面试准备的学习材料。这些材料主要面向的是那些还没有实际工作经验的应聘者,目的是帮助他们在面试中更好地表现。这份资料覆盖了Java...

    java版本websocket实例下载

    下面将详细介绍这个`java版本websocket实例`中的关键知识点。 1. **WebSocket API简介** WebSocket API允许双向通信,即服务器和客户端都可以主动发送数据。这与HTTP协议不同,HTTP是请求-响应模型,服务器只能在...

    飞鸽传书java版本

    飞鸽传书是一款经典的局域网通信软件,其Java版本为开发者提供了在Java平台上实现文件传输和即时通讯的可能性。在本文中,我们将深入探讨这款软件的Java实现,以及相关的技术知识点。 1. **Java编程语言**:Java是...

    java 17 window 安装包

    Java 17是Java开发工具集(Java Development Kit)的一个主要版本,对于Windows操作系统提供了全面的支持。这个安装包是专为在Windows x64平台上运行和开发Java应用程序设计的。让我们深入了解一下Java 17以及如何在...

    纯JAVA环境获取APK信息:包名,版本,版本号,大小,权限...

    纯JAVA环境获取APK信息:包名,版本,版本号,大小,权限... 代码讲解地址:http://blog.csdn.net/chillax_li/article/details/41850863

    Java 6.0 完整安装版

    Eclipse是一款广泛使用的Java集成开发环境(IDE),`eclipse安装程序`可能指的是Eclipse的Java版本,用于提供更加友好的开发环境,帮助开发者更高效地编写Java代码。 `理想下载.htm`和`理想搜索.htm`可能是与下载...

    纯java读取apk文件信息(包括版本号,包名等)

    使用`java.util.zip.ZipFile`类,可以方便地读取ZIP格式的APK文件。通过构造函数传入APK文件的路径,即可创建一个`ZipFile`对象。 2. **读取AndroidManifest.xml**: APK文件的核心信息存储在`AndroidManifest....

    javacv所有jar包-java

    从javacv-platform-1.3.3-bin.zip中抽出来的:javacpp.jar、javacv.jar、javacv-platform.jar、opencv.jar、opencv-android-arm.jar、opencv-android-x86.jar、opencv-linux-armhf.jar 、opencv-linux-ppc64le.jar、...

    Java 面经手册·小傅哥.pdf

    这是一本以面试题为入口讲解 Java 核心内容的技术书籍,书中内容极力的向你证实代码是对数学...2. 想阅读 Java 核心源码,但总感觉看不懂的 3. 看了太多理论,但没有实践验证的 4. 求职面试,总被面试题搞的死去活来的

    Java卸载工具

    这有助于解决由于不完全卸载导致的安装问题,比如新版本Java无法成功安装或者旧版本残留导致的冲突。 Java安装卸载过程中常常遇到的问题有: 1. **注册表清理**:Java在安装时会向系统注册表写入大量信息,用于...

    java集成webkit浏览器

    Java集成WebKit浏览器是一种技术实践,它允许Java应用程序利用WebKit渲染引擎来展示网页内容。WebKit是一个开源的Web浏览器引擎,被广泛应用于Safari、Chrome等知名浏览器。在Java中集成WebKit,开发者可以创建具有...

Global site tag (gtag.js) - Google Analytics