2013-08-24 103 views
0

我正在嘗試使用編譯器API動態編譯整個Java項目。我最初的想法是首先知道如何使用命令行以單行方式編譯它,然後在編譯器對象上應用相同的原理/參數。問題是,我從來沒有,錯誤,使用CLI編譯。 (使用IDE的缺點?哈哈)使用編譯器API編譯Java項目

那麼,我在正確的軌道上?而且,項目彙編能否在一行執行中實現?我很難搞清楚這是因爲它是一個項目,它包含豐富的包。

+1

任何你不能使用像[Maven](http://maven.apache.org/)或[Ant](http://ant.apache.org/)這樣的構建工具的理由? – earcam

+0

*「那麼,我在正確的軌道上嗎?」*如果你的意思是「在正確的軌道上」,首先在命令行中進行,但我沒有看到這一點。它在Java編譯API中實現的方式在查找所有必需的源文件方面有很大不同。從內存中它需要實現['JavaFileManager'](http://docs.oracle.com/javase/7/docs/api/javax/tools/JavaFileManager.html)。 –

+0

@earcam我實際上在試着學習實際的API,而不是開發一個需要我自己去做的項目。 –

回答

0

所以你要麼學習javac或Java編譯器API?

如果你想CLI編譯看看javac(Linux | windows)。

或者爲API,然後程序中使用Java的編譯器API的肯定會需要更多的是一個線,這將讓你的編譯器:

JavaCompilercompiler =ToolProvidergetSystemJavaCompiler();

然後,您仍然需要加載類,寫出字節代碼,並可能打包爲JAR。

正如你可能很多類來管理你應該使用StandardJavaFileManager,有一個在JavaCompiler進行的javadoc頂部的例子,但搜索StandardJavaFileManager+JavaCompiler+example找到這樣blog post更清晰的例子。