IDEA构建JDK源码阅读的环境以及遇到的问题

我直接从https://github.com/wupeixuan/JDKSourceCode1.8这里clone到本地直接打开用的,但是还是会出现问题(阅读源码的时候,点击进入方法关联到了jdk的源码上自身的源码上),请看下面

如果自己构建会出现什么问题?

首先我遇到的就是:

  • 缺少com.sun.tools包

  • 缺少sun.awt.UNIXToolkit 和 sun.font.FontConfigManager这两个类导致项目报错

这两个,第一个还好,第二个从网上找到这两个class自己手动放到项目对应的文件中,我找了好久找到了,还是报错,真实磨人,所以就放弃了自己构建。

缺少com.sun.tools包


在这里插入图片描述

解决思路:File => Project structure => Libraries 把jdk路径下的lib包添加到工程中,如下图:

在这里插入图片描述

缺少sun.awt.UNIXToolkit 和 sun.font.FontConfigManager这两个类导致项目报错


解决思路: 在src的目录下手动添加这两个类

在这里插入图片描述

阅读源码的时候,点击进入方法关联到了jdk的源码上自身的源码上


在这里插入图片描述

可以看到我看的是AQS类中的某个方法file is readonly,然后发现直接点击进入了jdk的源码,而不是我自己构建的,而这个方法我是从我自己构建的JDK源码点击去的

在这里插入图片描述

这也太难了

参考的博文中也给出了答案,但是没有写完整。

解决思路: 排除掉src.zip文件,按下图操作即可。

在这里插入图片描述

首先声明按照楼主这么做是对的,我们验证一下

在这里插入图片描述

我直接全删掉了,然后添加我自己构建的JDK的SRC目录

在这里插入图片描述

如上图,操作完之后,按照之前点击进入AQS这个类,发现还是进入了JDK本身的源码中,我绝望了,也没有找到好的解决方式。

花了好久好久。。。。。。。

气的我砸键盘,后来发现砸键盘在这个类中居然能打字了,如下图,发现不是file is read only了,可以写了?

在这里插入图片描述

还是不懂,可能是我笨把

会不会是这个类指向这里,但是本身已经不是在这里了?(听不懂把,我也不会表达)

在这里插入图片描述

右键项目copy path,看到绝对路径并不是我说安装的jdk环境中的路径,而是自己构建的代码的路径,即使左侧显示的是在jdk的zip包下面。

所以在这里修改下,然后到我本身构建的JDK目录中查看是否被修改。

在这里插入图片描述

果然,在我刚刚构建的目录中修改成功了,我的设想是对的,而这其中修改了刚刚的sourcePath这个配置,那么我去看一次idea 官方文档怎么说?

在这里插入图片描述

地址:https://www.jetbrains.com/help/idea/2016.3/sdk.html

可能全翻译成中文不太好懂,containing the source code for the SDK binaries included in the classpath set.,这里其中包含类路径集中包含的SDK二进制文件的源代码。,类路径就是

在这里插入图片描述

就是这里,没错,我们java中的源代码大部分就在rt.jar中(题外话),classPath指向这里,但是里面的源代码通过上面的sourcePath已经类似于重定向 到了我自己制定的刚刚构建的位置了。

呜~

嗯,我想是这样的,虽然看起来挺别扭(看着是在jdk的zip中添加注释),不过真的解决问题了(被重定向了),虽然不是很完美,但是够用啦,哈哈哈哈哈哈

其他问题

==================================================================

参考的几个楼主中还有其他的问题,虽然我目前没有debug,但是前几步和他们说的一模一样,所以顺便把他们遇到的问题也记录下来,以后会用到。

debug的时候,误点Alternative source availble for the class xxxx 的disable


在这里插入图片描述

解决思路: 打开setting => Debugger, 如下图 选中该选项。

在这里插入图片描述

编译过程中报java:OutOfMemory,提示系统资源不足


编译过程中报java:OutOfMemory,提示系统资源不足(https://blog.csdn.net/ljj821061514/article/details/52371037)

我的原来默认设置的是700,改成1000就没问题了

在这里插入图片描述

要让代码运行时自动关联到当前项目src目录下的代码(这个跟我说的那个问题一样)


要让代码运行时自动关联到当前项目src目录下的代码(为了不影响平时使用jdk的源码,我创建了一个1.8study,唯一的差别就是把原来的src.zip换成了jdk1.8-sources-study的src目录)(https://blog.csdn.net/u011837804/article/details/80450809)

在这里插入图片描述

原文链接:https://blog.csdn.net/u010999809/article/details/101922489

手动构建(不通过git clone,不推荐)

====================================================================================

这种方式有点累,不太推荐,倒不如去github上找优秀的,在巨人肩膀上前行。

这种方式来自:https://blog.csdn.net/qq_42191317/article/details/102772497

简介


在项目开发中,查看jdk源码时是只允许读,无法修改或者加注释的。为了方便学习JDK源码,我们首先需要搭建环境,可以对JDK源码进行修改,添加注释等操作。

Step1:创建项目


打开IDEA,创建一个普通的Java工程,选择好JDK。

自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

总结

总的来说,面试是有套路的,一面基础,二面架构,三面个人。

最后,小编这里收集整理了一些资料,其中包括面试题(含答案)、书籍、视频等。希望也能帮助想进大厂的朋友

三面蚂蚁金服成功拿到offer后,他说他累了

三面蚂蚁金服成功拿到offer后,他说他累了

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
,小编这里收集整理了一些资料,其中包括面试题(含答案)、书籍、视频等。希望也能帮助想进大厂的朋友**

[外链图片转存中…(img-ScRarx5G-1713385867083)]

[外链图片转存中…(img-WCmIzLO6-1713385867083)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

  • 23
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 搭建 Spark 2 版本的源码阅读和调试环境可以使用 IntelliJ IDEA。以下是具体步骤: 1. 下载 Spark 2 的源代码:可以从 Spark 官网下载最新版本的源代码。 2. 安装 IntelliJ IDEA:可以从 IntelliJ 官网下载最新版本的 IDEA。 3. 导入 Spark 源代码:打开 IDEA,选择“File”->“New”->“Project from existing sources”,然后选择 Spark 源代码目录,按照步骤完成导入。 4. 配置 Scala 插件:打开 IDEA 的“Settings”->“Plugins”,安装 Scala 插件。 5. 配置 Scala SDK:打开 IDEA 的“Settings”->“Languages & Frameworks”->“Scala”,选择 Scala SDK 的路径,如果没有安装 Scala SDK,需要先安装。 6. 配置 SBT:打开 IDEA 的“Settings”->“Build, Execution, Deployment”->“Build Tools”->“SBT”,选择 SBT 的路径,如果没有安装 SBT,需要先安装。 7. 构建项目:打开 IDEA 中的 Terminal,在 Spark 源代码目录中输入“sbt compile”,构建项目。 以上是搭建 Spark 2 版本的源码阅读和调试环境的步骤,希望对您有所帮助。 ### 回答2: 要在IDEA中搭建Spark2版本的源码阅读调试环境,你可以按照以下步骤进行操作: 1. 首先,确保已经在你的机器上安装了Java和Scala,并且设置了相应的环境变量。 2. 下载Spark源码。你可以从Spark官方网站或GitHub上获取最新的Spark源码压缩包,然后解压到你选择的目录。 3. 打开IntelliJ IDEA,选择“Import Project”或者“Open”选项,导入Spark的源码目录。 4. 确保已经安装了Scala插件。在打开的项目中,点击"File" -> "Sesttings" -> "Plugins",搜索并安装Scala插件。 5. 配置项目SDK。点击"File" -> "Project Structure",选择"SDK"选项,点击"+"号添加Java SDK和Scala SDK。 6. 配置编译选项。选择"File" -> "Project Structure",选择"Project"选项,在"Project SDK"下拉菜单中选择Java版本。 7. 设置Spark模块依赖项。在"Project Structure"窗口中,选择"Modules"选项,选择当前项目并点击"+"号添加依赖项。在弹出的窗口中选择"Libraries" -> "Java",然后添加Spark所需的所有依赖项。 8. 配置启动配置。在IntelliJ IDEA中点击"Run" -> "Edit Configurations",然后点击"+"号添加一个新的"Application"配置。在"Main Class"中输入你想要调试的Spark,比如"org.apache.spark.examples.SparkPi",在"Program arguments"中添加任何必要的参数。 9. 单步调试Spark源码。在IntelliJ IDEA中设置断点,并点击"Debug"按钮启动调试。 通过以上步骤,你就可以在IntelliJ IDEA中搭建Spark2版本的源码阅读调试环境了。这样你可以方便地阅读和分析Spark源码,并通过调试功能定位问题和了解Spark的内部工作原理。 ### 回答3: 要在idea中搭建Spark 2版本的源码阅读调试环境,可以按照以下步骤进行操作: 1. 下载源码:首先,从Spark官网(https://spark.apache.org/)或者GitHub仓库(https://github.com/apache/spark)上下载Spark 2版本的源码。 2. 安装必要的软件:确保已经安装了Java和Scala的开发环境。可以从官方网站上下载并安装最新版本的JDK和Scala。 3. 导入项目:打开IntelliJ IDEA,选择“Open”或者“Import Project”选项,然后导航到Spark源码的根目录下,选择build.sbt文件作为项目文件进行导入。 4. 设置项目SDK:在项目导入完成后,选择菜单栏中的“File” -> “Project Structure”,然后在左侧面板中选择“Project Settings” -> “Project”,在右侧面板的“Project SDK”中选择已经安装好的Java SDK版本。 5. 配置Scala编译器:在左侧面板中选择“Project Settings” -> “Project”,然后在右侧面板的“Project Compiler Output”中选择一个合适的目录作为编译输出路径。 6. 配置依赖项:在Spark源码根目录下,到build.sbt文件,并按需编辑该文件,添加或修改需要的依赖项。然后使用命令行执行sbt命令,下载和构建项目所需的依赖项。 7. 启动调试:在IntelliJ IDEA中使用“Run” -> “Edit Configurations”菜单项,添加一个新的“Application”配置。配置“Main class”为"org.apache.spark.launcher.Main",并设置“Program arguments”为"org.apache.spark.deploy.SparkSubmit --class org.apache.spark.examples.SparkPi --master local[2] --deploy-mode client --executor-memory 1g --num-executors 2 /path/to/examples.jar"(示例命令),然后点击“OK”保存配置。 8. 开始调试:点击IntelliJ IDEA的“Debug”按钮运行调试,就可以在源码中设置断点,单步调试和观察变量的值了。 这是在IntelliJ IDEA中搭建Spark 2版本的源码阅读调试环境的基本步骤。根据具体的环境和需求,可能会有一些细微的差别,但总体上应该能够帮助你成功搭建环境并进行源码阅读和调试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值