我想以編程方式檢查一個java類是否有編譯錯誤。 你能讓我知道它是如何做到的嗎?以編程方式檢查編譯錯誤java文件
0
A
回答
4
你可以使用JavaCompiler API來編譯這個類,它會讓你知道是否有一些編譯錯誤。
人爲的例子(使用一個字符串作爲輸入,但你可以閱讀文件,而不是):
String className = "somepackage.YourClass";
String body = "package somepackage; "
+ "public class YourClass { "
+ "} ";
compile(className, body, TEMP_PATH); //TEMP_PATH: Where the .class file is saved
其中編譯看起來是這樣的:
private static void compile(String className, String body, Path path) throws Exception {
List<JavaSourceFromString> sourceCode = Arrays.asList(new JavaSourceFromString(className, body));
JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, null, null);
fileManager.setLocation(StandardLocation.CLASS_OUTPUT, Arrays.asList(path.toFile()));
boolean ok = compiler.getTask(null, fileManager, null, null, null, sourceCode).call();
System.out.println("compilation ok = " + ok);
}
1
從how-do-i-programmatically-compile-and-instantiate-a-java-class
您需要先編譯它。這可以通過javax.tools API以編程方式完成。這隻需要在本地機器上安裝JDK在JRE之上。
相關問題
- 1. Java以編程方式編譯jar
- 2. 如何以編程方式檢查源代碼編譯?
- 3. 我以錯誤的方式編譯?
- 4. 編譯Java教程錯誤
- 5. 以編程方式編輯/修改.java文件? (未.class文件)
- 6. Java編譯錯誤(編輯)?
- 7. 以編程方式編譯表達式而不編譯它們
- 8. 錯誤:從包編譯Java文件P2
- 9. Java編譯錯誤的舊文件
- 10. Java編譯錯誤
- 11. 以編程方式編譯Android項目
- 12. 以編程方式編寫PDF文件
- 13. 以編程方式檢查android版本
- 14. 以編程方式檢查httpErrors errorMode
- 15. 以編程方式檢查fixnum大小
- 16. SQLAlchemy,以編程方式檢查參數
- 17. 以編程方式檢查子系統
- 18. 以編程方式檢查.NET代碼
- 19. 以JAR格式編譯Java編譯器?
- 20. 檢查Stackable文件系統是否以編程方式安裝
- 21. 以編程方式檢查是否使用CSS文件
- 22. 如何以編程方式檢查eps文件版本?
- 23. CUDA編程:編譯錯誤
- 24. 如何以編程方式通過-X選項Java編譯器
- 25. 如何以編程方式編譯和實例化Java類?
- 26. 以編程方式調用C#編譯器編譯C#代碼
- 27. 以編程方式排序datagridview錯誤
- 28. 如何以編程方式查找文件的編碼?
- 29. 如何以編程方式檢查是否安裝使用Java
- 30. Java - 以編程方式將文件追加到Jar文件
+1另請參見示例。 [這裏](http://www.java2s.com/Code/Java/JDK-6/CompileaJavafilewithJavaCompiler.htm) – 2013-02-14 10:47:34