JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
第二行代码报错:java.lang.NullPointerException
问题原因是ToolProvider.getSystemJavaCompiler();获取到的compiler为null,具体原因是找不到jdk/lib下的Tools.jar包
解决方法:查看环境变量JAVA_HOME的值的目录下是否有该jar包,若没有,复制一个进去
第二种原因:jdk上传服务器的时候,采用不当的上传方式也会造成找不到Tools.jar包,之后的解决方式是把jdk打成tar压缩包发到服务器再解压缩解决的。