ToolProvider.getSystemJavaCompiler() 返回NULL解决方法

最近在学习动态编译时遇到一个NULL指针问题,用到了ToolProvider.getSystemJavaCompiler()获取JavaCompiler对象来编译类。

在调试时我们可以看到ToolProvider.getSystemJavaCompiler()返回的NULL:

在查看ToolProvider的源码时发现这一段:

它编译文件时,会找到去查找jre\lib\tools.jar

但是值得注意的是tools.jar并不在jre中,它是在jdk的安装目录下

所以,手动把这个jar文件从jdk目录下拷贝到了jre目录下,再次运行上面的代码就没有问题了!

原文链接:,转发请注明来源!

发表评论