编译Java基础类库

想看看Java的源码,之前都是通过关联源码的方式看,不过这样只能通过方法的关联去看,很是不爽。现在直接把整个源码都导进Eclipse的工程下并编译来,这样就舒服多了。jdksrczip.jpg

参考链接:


源码在jdk安装目录下,如上图所示的src.zip就是。
首先,在Eclipse下建一个Java工程
jdkproject.jpg

然后src上右键,import选择Archive File导入
archivefile.jpg

选择src.zip后finish即可
importsample.jpg

等待Eclipse把类都复制到工程下。复制好了等等第一次编译,有点慢。而我的Eclipse在编译期间崩了,什么鬼。
whatthefuck.jpg

好吧,关掉再开。所幸的是还能正常打开~~!但是我看到了啥……
manybugs.jpg

WTF,要不是参考链接中有提醒,我估计会怀疑人生。

Access restriction,访问限制,意思是这些API是限制访问的。简单来说,这些API是非常底层的,可以理解为核心,只有在编 写JDK这样的程序的时候才会使用上,一般我们自己写的JAVA应用程序肯定是不会用到这么底层的API好,我们就来关闭API限制

restricted.jpg

默认是Error,这里改为Warning或Ignore都是OK的。确定后提示要全部重新编译,等待一会就好。
fewbugs.jpg

然后“嗖”的一下就剩53个了,
首先是the import com.sun.tools cannot be resolved,这个通过导入jar包就能解决
importnotfound.jpg

tools.jar在jdk安装目录的lib文件夹下
下面解决UNIXToolkitFontConfigManager的问题。
这两个类的源文件可以在OpenJDK网站下载

进去后找到相应的类直接ctrlcv就行。
sampleclass.jpg

并在Eclipse工程下建立相应的目录和类
eclipserelateclass.jpg

等待编译完就OK了,致此Error全部消灭,终于可以愉快的看源码了
callchain.jpg

这调用链查看美滋滋啊~~!
还可以把项目导出为rt_debug.jar用作默认jdk的扩展,以进行JDK源码的调试跟踪。不过我暂时还不需要那么复杂的功能,就先这样了,如果有需要的可查看参考链接或自行百度。

标签: none

添加新评论

ali-01.gifali-58.gifali-09.gifali-23.gifali-04.gifali-46.gifali-57.gifali-22.gifali-38.gifali-13.gifali-10.gifali-34.gifali-06.gifali-37.gifali-42.gifali-35.gifali-12.gifali-30.gifali-16.gifali-54.gifali-55.gifali-59.gif

加载中……