我想以編程方式檢查一個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文件
- 2. 編程編譯.java文件,錯誤
- 3. Java以編程方式編譯jar
- 4. 如何以編程方式檢查源代碼編譯?
- 5. 以編程方式查找PHP錯誤日誌文件
- 6. 我以錯誤的方式編譯?
- 7. 編譯Java教程錯誤
- 8. 以編程方式編輯/修改.java文件? (未.class文件)
- 9. Java編譯錯誤(編輯)?
- 10. 以編程方式編譯表達式而不編譯它們
- 11. 以編程方式編譯Android項目
- 12. 如何以編程方式使用Roslyn編譯C#文件?
- 13. 以編程方式編譯Flash(.fla)文件
- 14. 錯誤編譯Java源文件
- 15. JAVA文件中的JFlex編譯錯誤
- 16. 錯誤:從包編譯Java文件P2
- 17. Java編譯錯誤的舊文件
- 18. 編譯錯誤Java
- 19. Java編譯錯誤';' '}'
- 20. 編譯錯誤Java
- 21. Java編譯錯誤
- 22. 以編程方式編寫PDF文件
- 23. 以編程方式編輯.webarchive文件
- 24. 以編程方式編輯.conf文件
- 25. 以編程方式檢查.NET代碼
- 26. 如何以編程方式檢查NSMicrophoneUsageDescription
- 27. 以編程方式檢查httpErrors errorMode
- 28. 以編程方式檢查用戶組
- 29. 以編程方式檢查子系統
- 30. 以編程方式檢查android版本
+1另請參見示例。 [這裏](http://www.java2s.com/Code/Java/JDK-6/CompileaJavafilewithJavaCompiler.htm) – 2013-02-14 10:47:34