JavaCompiler和runtime.exec都无法编译程序,因为它们找不到编译器

时间:2019-02-19 16:22:23

标签: java compilation

我正在尝试使我的应用程序编译一个.java文件。但是,我遇到了一个明显的缺陷:显然,在Eclipse中运行(用于测试)时,找不到系统编译器。我已经尝试过JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();,但是编译器只是null。我尝试通过runtime.exec()运行,测试在命令行上手动运行的命令(并使其在那儿正常工作),但它仍会返回“找不到javac”错误,该错误通常表示路径为“ t正确安装。 Eclipse将编译我正在运行的实际程序,但是在Eclipse中运行的代码找不到任何此类编译器。我不想手动设置PATH变量,因为我打算将此程序分发给其他人,所以我还应该如何解决此问题?

1 个答案:

答案 0 :(得分:0)

对于将来的读者,@ Andreas评论了答案,其余部分我都弄清楚了。在程序的设置中,默认情况下使用了JRE。我必须将其更改为JDK(从Java 1.8开始安装了JRE),才能访问编译器。为此,我进入了构建路径,将JDK添加为“ JRE系统库”,然后删除了旧库。