首页 > 代码库 > ToolProvider.getSystemJavaCompiler()为空的问题

ToolProvider.getSystemJavaCompiler()为空的问题

1.eclipse中安装jre   window->preferences->java->Installed JREs

这里分别安装了jdk1.6.0_10和jre6,分别来试验

2.project右击->properties->Java Build Path->Libraries->Add Library...


这里选择的是jre6
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();

compiler为null
把jre6替换为 jdk1.6.0_10
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();

compiler为com.sun.tools.javac.api.JavacTool@1c184f4
分析:

我们安装jdk1.6的时候,会在安装包java下发现jdk1.6.0_10和jre6两个文件夹,在jdk1.6.0_10下有一个jre包,包里的内容和jre6文件夹下的内容是一样的。这是因为我们在开发程序的时候需要用到jre,所以jdk1.6.0_10下有一个jre包,但只运行java程序的时候,只会用到jre6下的命令。弄清楚这一点,问题就好说了,我们要获得编译器,可是jre6文件夹下根本没有编译器,所有我们应该使用jdk1.6.0_10文件夹下的jre.

http://blog.csdn.net/gumanren/article/details/4829718