idea中调试jdk8源码

调试jdk源码难点

1、debug无法查看局部变量

2、在学习期间,添加不了注释

带着这两个问题,咱们继续往下看

解决添加不了注释的问题

1、打开idea->选择Project->File->Project Structure->SDKS->SourcePath如下图

idea中调试jdk8源码_第1张图片

2、目前看到的加入idea的两个源码文件是.zip文件,如果希望能在源码中加入注释,那就将zip文件解压,然后依赖解压后的文件,如下图

idea中调试jdk8源码_第2张图片

这样就可以再debug时,在源码中加入注释了,还不赶紧去试试哈!

解决无法查看局部变量的问题

先说一下,jdk8之前的版本和jdk8方式不一样

1、解压src.zip,在eclipse中创建项目,并将解压的文件导入。

2、删除com\sun\java\swing、javax\swing包,以及com\sun\source\util\JavacTask.java、com\sun\source\util\Plugin.java文件。

3、导出项目export->rt_debug.jar

3、把这个rt_debug.jar包复制到JDK_HOME\jre\lib\endorsed。如果没有endorsed目录,自己创建一下。

解释一下:在JAVA运行环境中有一个叫endorsed的目录,它充许你将一些特殊的类库放到其中以供项目使用。

官方说明:

   Specifying the -Djava.endorsed.dirs=lib/endorsed system property on the Java command line will force the JVM to prefer any library  it finds in the endorsed directory over its own system libraries. Copying the jars into $JAVA_HOME/jre/lib/endorsed will do the same  thing.

   其大意是:如果你在运行程序的时候指定了-D java.endorsed.dirs这个参数所指向的包含特别的jar包的目录,或者把那些jar复制到缺省的$JAVA_HOME/jre/lib/endorsed目录下。那么在项目运行时虚拟机会优先使用这些jar包,优先级比JDK自带的系统类库还要高,但是java.lang这个语言包下的类除处。
这样大家都知道了endorsed技术的作用了吧!


你可能感兴趣的:(源码学习)