2012-02-26 65 views
0

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

+0

检查Java脚本** javax.script **技术;例如:http://java.sun.com/developer/technicalArticles/J2SE/Desktop/scripting/ – ecle 2012-02-26 10:20:12

回答

0

我同意@ eee的评论,javax.script可能是一个非常适合您的项目,脚本代码比Java代码更容易处理。我已经成功地将它用于插件API,我不记得有任何问题可以启动并运行它。

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

+0

真的有必要了解这一切吗?我现在没有在寻找任何先进的东西,因为我只是在学习它的基础知识。一旦我拥有了所有的东西,我将升级所有的代码,使其全部安全。 – 2012-02-26 11:14:04

+0

没有必要去学习它的所有*,只是选择一些东西,然后去做。如果你使用Java 7,那么Andrew Thompson的答案可能就是要使用的东西。 – Barend 2012-02-27 20:52:31

1

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

+0

这是一个问题,因为我想要一段代码来编译一个完整的Java文件。 – 2012-02-26 11:16:29

+0

在这种情况下,请查看Andrew Thompson的答案。您也可以尝试直接使用[JavaCompiler类](http://docs.oracle.com/javase/6/docs/api/javax/tools/JavaCompiler.html)。即使在某个临时文件中调用javac可执行文件也是可行的,但它不像人们提出的其他解决方案那样优雅或便携。 – 2012-02-26 13:10:22

1

编译Java文件

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