javax.tools.Diagnostic 类使用示例
来源:互联网 发布:密室逃脱窃取数据攻略 编辑:程序博客网 时间:2024/06/05 13:36
转自:http://www.oschina.net/code/snippet_54100_51
用于来自工具的诊断的接口。诊断通常报告源文件中指定位置处的问题。但是,并非所有的诊断都与位置或文件关联。
位置是指距文件开始位置的字符偏移量(从 0 开始)。负值(除 NOPOS
以外)不是有效位置。
行号和列号从 1 开始。负值(除 NOPOS
以外)和 0 不是有效的行号或列号。
- 从1.6版本开始
<pre name="code" class="java">package minglu;import java.io.File;import java.io.IOException;import java.util.ArrayList;import java.util.List;import javax.tools.Diagnostic;import javax.tools.DiagnosticCollector;import javax.tools.JavaCompiler;import javax.tools.JavaCompiler.CompilationTask;import javax.tools.JavaFileObject;import javax.tools.StandardJavaFileManager;import javax.tools.ToolProvider; public class DiagnosticDemo { public static void main(String[] args) { String sourceFile = "F:/HelloWorld.Java"; JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>(); StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null); List<File> sourceFileList = new ArrayList<File>(); sourceFileList.add(new File(sourceFile)); Iterable<? extends JavaFileObject> compilationUnits = fileManager .getJavaFileObjectsFromFiles(sourceFileList); CompilationTask task = compiler.getTask(null, fileManager, diagnostics, null, null, compilationUnits); task.call(); try { fileManager.close(); } catch (IOException e) { } List<Diagnostic<? extends JavaFileObject>> diagnosticList = diagnostics.getDiagnostics(); for (Diagnostic<? extends JavaFileObject> diagnostic : diagnosticList) { System.out.println("Position:" + diagnostic.getStartPosition()); } }}
注意:在某些情况下,需要设置 Iterable<String> options来对getTash()中的参数进行设置。
0 0
- javax.tools.Diagnostic 类使用示例
- OVERVIEW OF DIAGNOSTIC TOOLS
- Oracle diagnostic and tuning tools
- Diagnostic and Tuning Tools(1)
- Diagnostic and Tuning Tools(2)
- Diagnostic and Tuning Tools(3)
- Diagnostic and Tuning Tools(4)
- 使用 javax.tools 创建动态应用程序
- 使用 javax.tools 创建动态应用程序
- Debug Diagnostic使用教程
- clang diagnostic的使用
- tuning 2 Diagnostic and Tuning Tools
- ORACLE9i_性能调优基础一(Diagnostic and Tuning Tools)
- #pragma clang diagnostic ignored的使用
- #pragma clang diagnostic ignored的使用
- tools使用
- 忽略警告语法#pragma clang diagnostic ignored的使用
- 使用Debug Diagnostic Tool排除内存泄漏故障
- Mahout基于item的协同过滤之asMatrix
- C++基础知识易错点和易混淆总结汇总(不定时更新)
- asdfasdfasdfasfd
- html调整img的水平垂直位置
- Eclipse查看Java源码的方式
- javax.tools.Diagnostic 类使用示例
- C++ & VB.NET & VB 过程函数结构
- LeetCode:Majority Element
- C#中 Thread类的使用
- 异常详细信息: System.Data.SqlClient.SqlException:用户 'IIS APPPOOL\DefaultAppPool' 登录失败解决办法
- RXTX for JAVA 串口编程实例
- DOMImplementation
- spring+mybatis
- Oracle Flash Storage System新版手册集