首页 > 编程语言 >在IDEA搭建JDK8源码运行环境

在IDEA搭建JDK8源码运行环境

时间:2023-03-20 11:35:54浏览次数:52  
标签:JDK IDEA 源码 运行 JDK8 下载 搭建

源码的代码里会有很多的引用,我们只是单纯的用文本阅读,效率和体验都很不好,也不能使用debug功能查看每一步的代码执行效果,所以就需要借助idea编辑器工具,可以使用快捷键跳转到引用的类和方法,还可以debug运行。

idea不能直接运行JDK8源码,我们需要自己搭建一套可以运行的环境。如何搭建,请看下文!!!

首先我们需要下载JDK8,如果没有JDK8,请看JDK8下载,如果有,请移步到运行环境搭建。

JDK8下载

进入Oracle官网下载,根据自己的操作系统下载对应的版本

在这里插入图片描述

现在Oracle官网下载需要登录后才可以下载,不要修改密码!!!

以下账号由 withLevi梦想音乐人生 两位大佬提供

账号:[email protected]
密码:Oracle123

账号:[email protected]
密码:Wsm13479641769.

下载安装,并找到安装目录下的src.zip压缩包,进行解压

在这里插入图片描述

IDEA运行环境搭建

  1. 新建项目,选择你安装的JDK版本,新建两个包 source(存放JDK源码)和test(存放测试用例)
    在这里插入图片描述

  2. 将上面解压后的src.zipsrc目录下的文件夹都复制到source文件夹下
    在这里插入图片描述

  3. 编写用例前,idea需要进行如下设置
    为了防止系统资源不足的问题,设置堆内存大小,大小自定义
    在这里插入图片描述
    因为JDK源码是受保护的,所以我们debug单点调试step into无法进入源码内部,但force step into强制进入是可以的,如果想step into(F7)进入源码,需要如下设置
    在这里插入图片描述
    如果我们想对源码进行记录或注释,发现是不能编辑的,源码是只可读文件,无法编辑,因为项目关联的还不是我们刚复制进项目的源码文件,还是JDK安装目录下的源码文件,重新将项目关联的源码文件设置成该项目文件夹下的源码文件
    在这里插入图片描述

  4. test包下编写测试用例
    在这里插入图片描述
    在这里插入图片描述
    此时发现进入源码是我们项目下的源码文件,可以编写注释。但运行测试用例会报编译错误一系列问题!!! 如果解决编译错误问题???请继续看下文

编译错误解决

  1. 程序包com.sun.tools.javac.api不存在问题
    因为缺少tools.jar工具包,如下操作选择JDK1.8安装目录下的lib目录下的tools.jar引入到项目中。
    在这里插入图片描述

  2. 找不到符号UNIXToolkitFontConfigManager的问题
    需要在项目的source包下新建sun.awt.UNIXToolkitsun.font.FontConfigManager
    在这里插入图片描述
    OpenJDK官网 找到这两个类的源码,分别复制到你新建的两个类中
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述
    复制完后,清除缓存并重启项目
    在这里插入图片描述
    最后,再运行测试用例,就可以执行成功
    在这里插入图片描述
    到这里我们整个的JDK8源码环境搭建就已经完成了

致谢

最后感谢 withLevi梦想音乐人生 两位大佬提供的帮助!!!

标签:JDK,IDEA,源码,运行,JDK8,下载,搭建
From: https://www.cnblogs.com/iqiuq/p/17235722.html

相关文章

  • IDEA 使用Git图文详解(学好idea操作git大全)
    IDEA使用Git图文详解(学好idea操作git大全)一、配置git二,项目到远程仓库新建本地仓库将需要上传的文件项目右击,git===add添加到git仓库,文件名为绿色然后commi......
  • Tars-Java网络编程源码分析
    作者:vivo互联网服务器团队-JinKai本文从JavaNIO网络编程的基础知识讲到了Tars框架使用NIO进行网络编程的源码分析。一、Tars框架基本介绍Tars是腾讯开源的支持多语言的......
  • 悬赏任务app源码(uniapp小程序源码)成品平台搭建及开发
    悬赏任务app源码,从名字本身就可以理解这个PHP项目的流程。通过在线管理员工任务。即使它也可以在Intranet中工作。MySQL数据库是此源代码的最终部分。它易于实施和遵循。它......
  • Masa Framework源码解读-03 MasaMinimalApi设计
    序言​ 相信大家可能或多或少都了解过微软官方的MinimalApi,最开始刚出来那会我其实对MinimalApi是嗤之以鼻的,因为本身有Controller控制器能够明确定义请求方法出来......
  • Mybatis 源码(三):Mybatis配置解析
    Mybatis有两个核心配置,全局配置会影响Mybatis的执行;Mapper配置定义了查询的SQL,下面我们来看看Mybatis是如何加载配置文件的。本文基于Mybatis源码(一):源码编译准......
  • JUC源码学习笔记8——ConcurrentHashMap源码分析1 如何实现低粒度锁的插入,如何实现统
    源码基于jdk1.8这一片主要讲述ConcurrentHashMap如何实现低粒度锁的插入,如何实现统计元素个数,如何实现并发扩容迁移系列文章目录和关于我一丶ConcurrentHashMap概述......
  • 如何查看.netCore源码
    1.ILSpy反编译工具=》选项  vs中,扩展安装ILSpy,重启vs。右键“用ILSpy打开源码”  2.网页在线查看 SourceBrowser(dot.net)LinkedList.cs(dot.net) ......
  • IDEA报错:Problems while loading file history
    title:IDEA报错:Problemswhileloadingfilehistorydate:2023-03-1914:44:00categories:踩坑tags:IDEAIDEA报错:ProblemswhileloadingfilehistoryCleanU......
  • 扩散模型 (Diffusion Model) 简要介绍与源码分析
    扩散模型(DiffusionModel)简要介绍与源码分析前言近期同事分享了DiffusionModel,这才发现生成模型的发展已经到了如此惊人的地步,OpenAI推出的Dall-E2可以根据......
  • chatgpt的js混淆源码解析
    JS混淆加密是一种常见的前端保护措施,可以将JavaScript代码混淆成难以阅读和理解的形式,从而保护代码的安全性。但是,即使经过混淆加密的JavaScript代码也并非绝对安全,有些黑客......