1
在Java中,可以在運行時從包含在字符串中的源代碼編譯和加載類(例如,使用javax.tools.JavaCompiler,EclipseCompiler或Janino)。這個過程可以完全在內存中,不需要編寫任何臨時文件。是否可以從Xtend字符串動態生成Java代碼字符串?
Xtend語言的工作原理是將Xtend源代碼轉換爲Java源代碼並編譯。 (糾正我,如果我錯了。)是否有可能將包含Xtend源代碼的字符串轉換爲包含Java源代碼的字符串,以便我可以使用我最喜歡的動態編譯器?我想在運行時*將Xtend源代碼轉換爲可加載的類。如果可能的話,你需要調用哪些函數/類來做到這一點?
* Runtime = no Eclipse-IDE,沒有JDK(僅限JRE),僅使用Xtend dependencies。
是的,我知道(謝謝,雖然)。我希望有人能更詳細地告訴我---這個API通過變異狀態來工作(例如,「編譯」函數返回一個布爾代碼,而不是編譯代碼),所以函數必須以某種順序調用,而不是其他函數訂購。另外,Maven插件的默認模式會生成文件,我希望將其全部存儲在內存中(對於某些環境(例如Google App Engine)是必需的)。 –
我以爲你可以使用文件系統作爲臨時存儲來讀寫 使用看看org.eclipse.xtend.core.compiler.batch.Main.main(String []) –
也許您可以利用Xtends自己的測試中的XtendCompilerTest –