我目前正在創建一個個人(也許是公共的)java終端。我想創建一個命令,用於在執行時創建+編譯Java文件,但我不太確定如何實際執行此操作。可能嗎?還是我只是在做夢?使用Java文件中的代碼編譯Java文件
回答
我同意@ eee的評論,javax.script
可能是一個非常適合您的項目,腳本代碼比Java代碼更容易處理。我已經成功地將它用於插件API,我不記得有任何問題可以啓動並運行它。
我在運行時編譯真實Java的大多數項目都使用Eclipse compiler來完成。 Java 6 javac
也可以完全以編程方式訪問。我從來沒有使用過這些。如果需要,可以通過Commons-JCI訪問這兩個和其他一些編譯器。
真的有必要了解這一切嗎?我現在沒有在尋找任何先進的東西,因爲我只是在學習它的基礎知識。一旦我擁有了所有的東西,我將升級所有的代碼,使其全部安全。 – 2012-02-26 11:14:04
沒有必要去學習它的所有*,只是選擇一些東西,然後去做。如果你使用Java 7,那麼Andrew Thompson的答案可能就是要使用的東西。 – Barend 2012-02-27 20:52:31
您也可以使用Groovy - 如果您只是想在應用程序中編譯和運行一行或兩行Java代碼,那麼它非常方便。應用程序可以使用常規的Java,而Groovy僅用於編譯動態生成的代碼。無論您選擇哪種解決方案,請謹慎執行用戶輸入,因爲代碼可能導致安全問題(易受注入攻擊)。
這是一個問題,因爲我想要一段代碼來編譯一個完整的Java文件。 – 2012-02-26 11:16:29
在這種情況下,請查看Andrew Thompson的答案。您也可以嘗試直接使用[JavaCompiler類](http://docs.oracle.com/javase/6/docs/api/javax/tools/JavaCompiler.html)。即使在某個臨時文件中調用javac可執行文件也是可行的,但它不像人們提出的其他解決方案那樣優雅或便攜。 – 2012-02-26 13:10:22
編譯Java文件
見STBC。它使用JavaCompiler
編譯文本區域中的代碼。
- 1. 使用java庫將.class文件反編譯爲.java源代碼
- 2. 使用Java程序編譯Java文件
- 3. 編譯java文件
- 4. 編譯Java文件
- 5. eclipse中編譯java文件
- 6. 編譯Java文件,使用Windows Cmd的
- 7. 使用Java編譯器API來編譯多個java文件
- 8. 在Intellij中用反編譯文件替換Java源代碼
- 9. 如何在Java中編譯.java文件?
- 10. 從java程序中編譯.java文件?
- 11. 翻譯文件,使用此代碼谷歌翻譯的Java API
- 12. 調試java文件編譯(使用gwt)
- 13. 無法使用cygwin編譯java文件
- 14. 反編譯.java文件使用Proycon
- 15. 如何使用C++編譯.java文件
- 16. 使用javac編譯java文件
- 17. 在java代碼中使用Jar文件
- 18. Ant排除文件編譯java文件
- 19. 編譯hadoop java文件
- 20. 未編譯Java文件
- 21. Runtime.exec不編譯java文件
- 22. Linux - 編譯java文件(hsqldb)
- 23. 編譯一些java文件
- 24. 反編譯java類文件
- 25. Java .War文件編譯
- 26. 編譯包含java和scala代碼的文件
- 27. 反編譯後我的Java文件包含字節代碼
- 28. Maven:排除編譯中的java文件
- 29. JAVA文件中的JFlex編譯錯誤
- 30. Excell文件的Java代碼
檢查Java腳本** javax.script **技術;例如:http://java.sun.com/developer/technicalArticles/J2SE/Desktop/scripting/ – ecle 2012-02-26 10:20:12