ToolProvider.getSystemJavaCompiler()获取Java编译器空指针异常

先说结论: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 掉。这样就可以查看源码了。

作者:墨猴
感觉对您有帮助的话,就点个推荐吧!~( ̄▽ ̄)~*
原文地址:https://www.cnblogs.com/mohou/p/12505410.html