2012-04-19 54 views
5

我正在研究一个涉及我的项目的项目来编译足够简单的java文件。从我的研究中,我决定不尝试构建我自己的编译器,因为这只需要很长时间。开发一个java程序来编译.java文件

那么有没有人知道什么是最好的编译器来实现在这个项目中,这样我就能够编译提交给程序的java文件?

+0

最明显的解决方案是使用Runtime.exec调用javac。你有没有理由不能这样做?有关您的情况的更多信息将帮助人们提供更好的答案。 – 2012-04-19 17:05:29

+0

我现在只是在项目的研究阶段,并试图找出我可以从java程序编译.java文件的不同方式。这是因为我打算构建一个工具来编译和分级java程序(目前为止,后来扩展到其他编程语言)。它会有更多的功能,但我只是专注于找到实际编译程序的最佳方式,以确保它们没有错误 – 2012-04-19 17:10:52

+0

如果您计划扩展到不同的语言,那么我绝对认为将命令行界面调用到编译器是要走的路。这样,您的程序就可以扩展到使用任何具有命令行界面的语言(即几乎所有语言)。但是,您将面临的一个问题是如何确保环境设置正确,并将您的程序与各种可能需要的构建工具集成在一起。 (例如,您的Java工具可能真的想要支持Ant构建,因为学生可能希望将Ant用于更复杂的项目。) – 2012-04-19 20:24:05

回答

9

为什么不使用内置的Java compiler API

+0

我正在查看javac,你会知道使用javac的优点吗? – 2012-04-19 17:03:01

+0

优点是,您不必为每个编译生成新的进程。 – 2012-04-19 17:05:00

+0

我必须研究这个更多一点,但看起来乍看之下无论如何是一个很好的做法 – 2012-04-19 17:13:10

0

这几乎听起来像你真的需要一个脚本-Y的办法,做了三两件事:

  • 编译适当的语言编译程序源
  • 执行产生的程序产生一些结果集
  • 比较结果到预期的结果产生一个等级

既然你说你想从Java开始,但移动到其他语言,我会建议调查蚂蚁。它将以多种语言构建,并且可以帮助执行/分级生成的目标代码。