为何JDK 1.8.0_162-b12的src.zip中无javax.net相关源码?
为什么JDK 1.8.0_162的src.zip里找不到javax.net的源码?
嘿,这个问题我之前碰到过好多次,咱们来拆解一下原因:
Oracle JDK 8的src.zip本身就不全:你拿到的这个
src.zip并不是Java SE所有API的完整源码包,它只包含了核心Java类库的一部分代码。像javax.net.*这类属于JRE扩展模块的API,Oracle并没有把它们的源码打包进默认的src.zip里。完整源码的获取渠道:别担心,这些源码其实是存在的!你可以去OpenJDK的代码仓库里拉取JDK 1.8.0_162对应的完整源码——毕竟Oracle JDK 8的大部分代码都是基于OpenJDK的,那里能找到
javax.net的全部源码。另外,Oracle也会单独发布完整的Java SE源码包,只是没和默认JDK安装包捆绑在一起。不同发行版的差异:不同厂商的JDK发行版(比如Oracle JDK、OpenJDK、AdoptOpenJDK)提供的源码包内容有区别。比如OpenJDK 8的源码包就会包含
javax.net的完整代码,如果你经常需要查看这类扩展API的源码,切换到OpenJDK的对应版本会更方便。
顺便提个小技巧:如果只是想在Eclipse里查看javax.net类的源码,你可以把JRE的rt.jar关联到从OpenJDK下载的完整源码,这样就能直接跳转查看了。
内容的提问来源于stack exchange,提问作者Kannan Ramamoorthy
相关产品推荐
相关产品推荐

