用Eclipse Debug,当跟踪进jdk api里时(比如javax.swing包里的类),无法查看某些local filed的值。这是因为jdk里的代码在打包时删除了一些用于调试的信息,以减小安装包的体积。不过可以通过重新编译jdk源代码来恢复此功能。

1.在Eclipse里新建一个java工程,把jdk_home/src.zip解压缩,复制java,javax两个目录的源代码到新建工程的src目录下。

2.build整个工程。如果build报Access restriction错误,是因为源代码里调用了com.sun等包的内容。可设置eclipse忽略这些错误。修改如下:

Windows -> Preferences -> Java -> Compiler -> Errors/Warnings -> Deprecated and trstricted API -> Forbidden reference (access rules): -> change to warning

3.可能还有个别错误,直接删除报错的源文件。

4.将编译得到的.class文件替换java_home/jre/lib/rt.jar文件里的.class文件。(用winrar打开rt.jar,直接把生成的java,javax包拖进去)。

重启eclipse。现在调试时,跟踪到jdk api里的代码时,可以查看到相关的variable的信息了。

转载于:https://www.cnblogs.com/happyPawpaw/p/3336998.html

编译JDK源代码【转】相关推荐

  1. java调用clang编译的so_写Java这么久,JDK源码编译过没?编译JDK源码踩坑纪实

    好奇害死羊 很多小伙伴们做Java开发,天天写Java代码,肯定离不开Java基础环境:JDK,毕竟我们写好的Java代码也是跑在JVM虚拟机上. 一般来说,我们学Java之前,第一步就是安装JDK环 ...

  2. javac 编译java_如何使用Javac工具编译Java源代码?

    javac 编译java javac is a tool used to compile Java applications or source code. javac reads class and ...

  3. 编译 Android 源代码 之路一

    编译Android源代码 很久之前就想编译Android源代码试试,一直没有尝试,这几天利用业余时间尝试编译一下Android源代码. 虽然网络上有很多作者,写过编译Android源代码的过程,基本上 ...

  4. 写Java这么久,JDK源码编译过没?编译JDK源码踩坑纪实

    好奇害死羊 很多小伙伴们做Java开发,天天写Java代码,肯定离不开Java基础环境:JDK,毕竟我们写好的Java代码也是跑在JVM虚拟机上. 一般来说,我们学Java之前,第一步就是安装JDK环 ...

  5. 编译jdk和使用clion调试jdk

    前言 我们都知道java程序是运行在jvm虚拟机上的,jdk里面很多native方法的实现都是在jvm源码里面的.那么jvm是如何加载类,如何创建对象,线程同步的本质是什么?那些看不见的native方 ...

  6. 通过分析 JDK 源代码研究 Hash 存储机制

    http://www.ibm.com/developerworks/cn/java/j-lo-hash/ 通过分析 JDK 源代码研究 Hash 存储机制 HashMap 和 HashSet 是 Ja ...

  7. linux下find查找带有指定权限的文件(windows下编译的源代码文件)

    find -type f -perm -o=x 查找用户在windows下编译的源代码文件 转载于:https://blog.51cto.com/axlrose/1357610

  8. java通过对.class文件字节码加密,不被轻易反编译出源代码,分析及其实现。

    java通过对字节码加密,不被轻易反编译出源代码. 分析: JVM运行java文件是通过加载.class文件实现程序运行的,而且这个过程被我们称为类加载机制. 执行加载这个动作的是类加载器(java. ...

  9. 请教大家:如何把.DCU文件反编译回源代码?谢谢。

    请教大家:如何把.DCU文件反编译回源代码?谢谢. Delphi / Windows SDK/API http://www.delphi2007.net/DelphiAPI/html/delphi_2 ...

最新文章

  1. Python3 reversed 函数
  2. 算法训练 最长字符串 java
  3. 关于公司内部DNS的整改建议
  4. 机器学习之数据预处理——数据清洗(缺失值、异常值和重复值的处理)
  5. java硬件编程_关于JAVA并发编程你需要知道的——硬件篇
  6. Android访问瓦片地图 费流量,瓦片地图服务在线资源访问总结
  7. CALayer的属性和使用
  8. next.js 无法导出及导出图片无法加载等问题
  9. 区块链只能算半个“信任机器”,隐私计算才是真正的信任机器?
  10. Swift: Swift中Selector的变化
  11. HTML代码中中逗号和句号怎么写,逗号和句号的用法
  12. @SpringBootTest Canot resolve symbol ‘SpringBootTest‘问题解决
  13. mac 高清壁纸推荐
  14. 用卷积神经网络实现笑脸、非笑脸表情识别
  15. 网上下载的PPT模板总是会自动切换、自动播放动画,怎么取消自动播放
  16. NumericUtil
  17. 研究GigE Vision(未完待续)
  18. 网络运维与管理2013超值精华本
  19. 人脸识别摄像头采集数据训练
  20. 浅谈淘宝客运营的一些思路和方法

热门文章

  1. POJ NOI MATH-7652 乘积最大的拆分
  2. icmp的报文,Destination Host Unreachable
  3. 因为项目管理知识体系指南(PMBOK)初识宝地
  4. redis 槽点重新分配 集群_弄懂一致性哈希后我打通了redis分区集群的原理
  5. wpspbc按钮是什么意思_AC只是英文单词缩写,在科技领域常见的有三种意思
  6. std::cin 溢出_溢出:坦诚地工作与焦虑如何影响我的团队
  7. 为什么我使用Java
  8. 开放式式商业模式_什么是开放式领导?
  9. 敏捷 橄榄球运动_为什么我为大学橄榄球博客选择Wordpress
  10. HTML5 header元素