2012-04-19 36 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開始,但移動到其他語言,我會建議調查螞蟻。它將以多種語言構建,並且可以幫助執行/分級生成的目標代碼。