Idea搭建JDK8源码环境

Idea搭建JDK8源码环境

1.准备

IDE:IntelliJ IDEA

jdk:oracle JDK8

​ 下载:http://www.oracle.com/technetwork/java/javase/downloads/index.html

​ 在JDK8的安装路径下找到src.zip压缩包,这就是我们需要的源码。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-KKyaCKNC-1613735785885)(C:\Users\viruser.v-desktop\AppData\Roaming\Typora\typora-user-images\image-20201231165448519.png)]

2.搭建步骤

2.1新建项目

在Idea中,新建简单的java project,如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-h5k6dd2M-1613735785887)(C:\Users\viruser.v-desktop\AppData\Roaming\Typora\typora-user-images\image-20201231165624561.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RfTRFp9S-1613735785890)(C:\Users\viruser.v-desktop\AppData\Roaming\Typora\typora-user-images\image-20201231165654235.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Liktnpd2-1613735785894)(C:\Users\viruser.v-desktop\AppData\Roaming\Typora\typora-user-images\image-20201231165737383.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-NtZgSFqr-1613735785896)(C:\Users\viruser.v-desktop\AppData\Roaming\Typora\typora-user-images\image-20201231165802140.png)]

2.2添加源码

首先将JDK8的源码src.zip解压,然后将解压后的src目录下的所有文件拷贝到我们的项目src下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-LWbKBwYR-1613735785897)(C:\Users\viruser.v-desktop\AppData\Roaming\Typora\typora-user-images\image-20201231170038461.png)]

2.3替换关联的JDK

为了避免修改到其他项目所使用SKK的内容,我们需要添加自己的SDK,如下:

file->Project Structure->SDKs,移除Sourcepath下关联的src.zip。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-maMqUgNn-1613735785897)(C:\Users\viruser.v-desktop\AppData\Roaming\Typora\typora-user-images\image-20201231170623365.png)]

关联到我们自己项目的JDK源码路径。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TyUAdwlM-1613735785899)(C:\Users\viruser.v-desktop\AppData\Roaming\Typora\typora-user-images\image-20201231170705278.png)]

修改项目,使用我们自己的JDK

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-hb9yxXVU-1613735785900)(C:\Users\viruser.v-desktop\AppData\Roaming\Typora\typora-user-images\image-20201231171312750.png)]

2.4解决资源不足的问题

File->Settings->Build,Execution,Deployment->Compiler

修改适当大一点。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-pnbR2zFq-1613735785901)(C:\Users\viruser.v-desktop\AppData\Roaming\Typora\typora-user-images\image-20201231171522323.png)]

2.5编译测试

当上面全部配置完成后,新建一个测试类,进行测试。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-WnjCTauD-1613735785902)(C:\Users\viruser.v-desktop\AppData\Roaming\Typora\typora-user-images\image-20201231171859940.png)]

这个时候需要构建一段时间,等待即可。

3.常见问题

3.1com.sun.tools.javac.api不存在

File->Project Structure->Libraries

添加JDK安装路径下的lib包到我们的项目中去。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xeI5zkhh-1613735785903)(C:\Users\viruser.v-desktop\AppData\Roaming\Typora\typora-user-images\image-20201231172607746.png)]

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HeFa7huZ-1613735785904)(C:\Users\viruser.v-desktop\AppData\Roaming\Typora\typora-user-images\image-20201231172731150.png)]

点击ok完成。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-HKO2Qk7i-1613735785905)(C:\Users\viruser.v-desktop\AppData\Roaming\Typora\typora-user-images\image-20201231172757488.png)]

3.2找不到sun.awt.UNIXToolKit和sun.font.FontConfigManager

1)在新项目中添加对应的包

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-2hoPdS9L-1613735785906)(C:\Users\viruser.v-desktop\AppData\Roaming\Typora\typora-user-images\image-20201231173014325.png)]

2)到http://hg.openjdk.java.net中寻找对应的类

http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/e17fe591a374/src/solaris/classes/sun/awt/UNIXToolkit.java

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fuGZJNjb-1613735785907)(C:\Users\viruser.v-desktop\AppData\Roaming\Typora\typora-user-images\image-20201231173224554.png)]

http://hg.openjdk.java.net/jdk8u/jdk8u/jdk/file/e17fe591a374/src/solaris/classes/sun/font/FontConfigManager.java

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TmKR6qO8-1613735785908)(C:\Users\viruser.v-desktop\AppData\Roaming\Typora\typora-user-images\image-20201231173356814.png)]

将这两个类拷贝到我们项目刚刚新建的对应包下。

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DTwaVNKp-1613735785908)(C:\Users\viruser.v-desktop\AppData\Roaming\Typora\typora-user-images\image-20201231173502636.png)]

复制进去后重新启动Idea,并再次编译即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值