使用Java文件中的代码编译Java文件

我目前正在创建一个个人(可能是公共的)Java终端。 我想创建一个命令,在执行时创建+编译Java文件,除了我不太确定如何实际执行此操作。 可能吗? 还是我只是在做梦?

您也可以使用Groovy – 如果您只想在应用程序中编译和运行一行或两行Java代码,那么它非常方便。 应用程序可以是常规Java,Groovy仅用于编译动态生成的代码。 无论您选择哪种解决方案,都要小心,因为执行用户输入代码可能会导致安全问题(注入攻击的漏洞)。

编译一个Java文件

见STBC 。 它使用JavaCompiler来编译文本区域中的代码。

我同意@eee的观点,即javax.script可能非常适合你的项目,脚本代码比Java代码更容易处理。 我过去成功地使用它来获取插件API,我不记得在启动和运行时遇到任何问题。

我所知道的大多数在运行时编译真实Java的项目都使用Eclipse编译器来完成。 Java 6 javac也可以通过编程方式进行访问。 我自己从未使用过这两种方法。 如果需要,可以通过Commons-JCI访问这两个和其他一些编译器。