先说结论:JRE目录下的 /lib 目录里的 tools.jar 丢失,可以从对应 JDK 的 /lib 文件里复制一份,也可以重新 Installs JREs ,推荐后者。
学习Java动态编译的时候,免不了获取Java编译器。而运行起来,有个空指针异常。
按住Ctrl点击getSystemJavaCompiler(),会跳转到找不到源码的界面。
Change Attached Source的时候,你就会惊奇的发现你连 tools.jar 包都找不到。众所周知,jre 是Java Runtime Environment,运行环境里连对应的 jar 包都没,自然会报空指针。
最简单的办法就是从 JDK 文件中复制一份过来再次运行。
此时你按住 Ctrl 点击查看源码的时候,仍然会找不到源码,虽然程序可以跑起来。典型的治标不治本。
点击 Eclipse 导航栏的 Window --> Java --> Installs JREs , 把旧的 jre 库 Remove 掉,Add 一个新的,JRE Type 选择 Strandard VM,然后浏览目录,选择 JDK 文件夹(这里表面提示是JRE目录,建议选择JDK文件夹)。
然后点 Finish,回到界面,将新增的 JRE 库前面对号勾选上,Apply and Close 掉。这样就可以查看源码了。