IntelliJ IDEA引入第三方jar包或查看Java源码的时候报decompiled.class file bytecode version:52.0(java 8)错误的解决办法

 更新时间:2018年10月24日 08:54:23   作者:李学凯  
今天小编就为大家分享一篇关于IntelliJ IDEA引入第三方jar包或查看Java源码的时候报decompiled.class file bytecode version:52.0(java 8)错误的解决办法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧

引入第三方jar包或者查看Java源码的时候,经常遇到问题如下:

decompiled.class file bytecode version:52.0(java 8) ,open source file.

翻译一下上面的意思:(反编译 .class文件中的字节码 到Java 8 版本) 打开源文件

其实这个时候,你就得注意一下,你看到文件是 .class文件,还是 .java文件。

然后我就详细的总结了一下,二者的差别:

1.先是理论知识:

  • .java为Java的源文件后缀,编写的代码需要写在.java文件中。
  • 而.class是字节码文件,是.java源文件通过javac命令编译后生成的文件。
  • Java虚拟机就是去运行.class文件从而实现程序的运行。
  • jdk自带 .class 文件,在运行的时候,没必要每次都去把 .java 文件再编译一遍成 .class文件,去运行。
  • 也是为了加快代码执行速度。

2.具体的 .class文件和 .java文件的具体对比图,如下:

这个.java文件和我们自己写的.java文件一样,是可以打开看内容的。下面的jar里面的源码就打不开啦。

再看如下的2张图。继续理解一下上面的意思。

注意

  • 现在看到的是.class文件,我们知道自己的写的.java文件会经过编译器编译然后变成.class文件,然后才可以运行的。
  • 这可以看到.class文件内部的代码,估计都是编译器的功劳。但是可惜的是,丁点儿注释都没有。
  • 我记得eclipse里面这个时候,好像就是直接弹框让你打开源文件来着。

注意

  • 现在看到的是.java文件,和我们平时写的Java文件是一样样的。就是直接打开那个xxx-sources.jar的结果。里面注释啥的都有。
  • 这2个图对比,就可以发现。一般jar包是有2个类型的。结尾带-sources的和不带的。二者的差别,就如上所描述的。

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对脚本之家的支持。如果你想了解更多相关内容请查看下面相关链接

相关文章

  • java 实现web项目启动加载properties属性文件

    java 实现web项目启动加载properties属性文件

    这篇文章主要介绍了java 实现web项目启动加载properties属性文件,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Mybatis SqlSessionFactory与SqlSession详细讲解

    Mybatis SqlSessionFactory与SqlSession详细讲解

    SqlSessionFactory是MyBatis的核心类之一,其最重要的功能就是提供创建MyBatis的核心接口SqlSession,所以我们需要先创建SqlSessionFactory,为此我们需要提供配置文件和相关的参数
    2022-11-11
  • SpringBoot使用EmbeddedDatabaseBuilder进行数据库集成测试

    SpringBoot使用EmbeddedDatabaseBuilder进行数据库集成测试

    在开发SpringBoot应用程序时,我们通常需要与数据库进行交互,为了确保我们的应用程序在生产环境中可以正常工作,我们需要进行数据库集成测试,在本文中,我们将介绍如何使用 SpringBoot 中的 EmbeddedDatabaseBuilder 来进行数据库集成测试
    2023-07-07
  • 解决使用this.getClass().getResource()获取文件时遇到的坑

    解决使用this.getClass().getResource()获取文件时遇到的坑

    这篇文章主要介绍了解决使用this.getClass().getResource()获取文件时遇到的坑问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Spring依赖注入DI之三种依赖注入类型详解

    Spring依赖注入DI之三种依赖注入类型详解

    这篇文章主要介绍了Spring依赖注入DI之三种依赖注入类型详解,通过 @Autowired 注解,字段注入的实现方式非常简单而直接,代码的可读性也很强,事实上,字段注入是三种注入方式中最常用、也是最容易使用的一种,需要的朋友可以参考下
    2023-09-09
  • Javaweb resin4如何配置端口虚拟目录

    Javaweb resin4如何配置端口虚拟目录

    这篇文章主要介绍了Javaweb resin4如何配置端口虚拟目录,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-07-07
  • MyBatis中传入参数parameterType类型详解

    MyBatis中传入参数parameterType类型详解

    这篇文章主要给大家介绍了关于MyBatis中传入参数parameterType类型的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2018-04-04
  • Java synchronized与CAS使用方式详解

    Java synchronized与CAS使用方式详解

    提到Java的知识点一定会有多线程,JDK版本不断的更迭很多新的概念和方法也都响应提出,但是多线程和线程安全一直是一个重要的关注点。比如说我们一入门就学习的synchronized怎么个实现和原理,还有总是被提到的CAS是啥,他和synchronized关系是啥?请往下看
    2023-01-01
  • 浅谈一下SpringBoot中的异步任务

    浅谈一下SpringBoot中的异步任务

    这篇文章主要介绍了浅谈一下SpringBoot中的异步任务,SpringBoot 中的异步任务主要是指在 SpringBoot 中使用异步线程完成处理任务,在 SpringBoot 中使用异步线程非常简单,只需要两个注解就可以搞定,需要的朋友可以参考下
    2023-10-10
  • java线程并发semaphore类示例

    java线程并发semaphore类示例

    Java 5.0里新加了4个协调线程间进程的同步装置,它们分别是Semaphore, CountDownLatch, CyclicBarrier和Exchanger,本例主要介绍Semaphore,Semaphore是用来管理一个资源池的工具,可以看成是个通行证
    2014-01-01

最新评论