运行时的Java编译器

Dip*_*eep 7 java runtime tools.jar

在我当前的项目中,我需要在运行时编译java代码(在后台处理来自用户的输入).这适用于类路径中的tools.jar.但是,并非我的程序的所有用户都在其系统上安装了JDK.其中一些只有JRE,在这种情况下,运行时没有可用的java编译器.我可以通过将Sun的tools.jar作为我工具的一部分来解决这个问题.

但tools.jar非常大(> 12 MB).问题是我必须包含大的jar文件,尽管我只对这个jar提供的一小部分功能感兴趣.

  1. 是否有可能拆分tools.jar文件,以便我只有一小部分类只需要编译java代码?

  2. 这是非法的吗?

非常感谢.

jos*_*efx 3

Eclipse 编译器只有 1.6 MB,无需 Eclipse 即可运行。你可以在这里下载。看起来它也实现了 JavaCompiler API。

它是根据 Eclipse 公共许可证获得许可的,因此将其包含在您自己的应用程序中应该没有问题。