Java by API/javax.tools/Diagnostic

Материал из Java эксперт
Перейти к: навигация, поиск

Diagnostic: getCode()

   <source lang="java">
    

import java.io.IOException; import java.util.Arrays; import javax.tools.Diagnostic; import javax.tools.DiagnosticCollector; import javax.tools.JavaCompiler; import javax.tools.JavaFileObject; import javax.tools.StandardJavaFileManager; import javax.tools.ToolProvider; public class Main {

 public static void main(String args[]) throws IOException {
   JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
   DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
   StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null);
   Iterable<? extends JavaFileObject> compilationUnits = fileManager
       .getJavaFileObjectsFromStrings(Arrays.asList("YourFile.java"));
   Iterable<String> options = Arrays.asList("-d", "classes", "-sourcepath", "src");
   JavaCompiler.rupilationTask task = compiler.getTask(null, fileManager, diagnostics, options,
       null, compilationUnits);
   boolean success = task.call();
   for (Diagnostic diagnostic : diagnostics.getDiagnostics()) {
     System.out.println(diagnostic.getCode());
     System.out.println(diagnostic.getKind());
     System.out.println(diagnostic.getPosition());
     System.out.println(diagnostic.getStartPosition());
     System.out.println(diagnostic.getEndPosition());
     System.out.println(diagnostic.getSource());
     System.out.println(diagnostic.getMessage(null));
   }
   fileManager.close();
   System.out.println("Success: " + success);
 }

}



 </source>
   
  
 
  



Diagnostic: getEndPosition()

   <source lang="java">
    

import java.io.IOException; import java.util.Arrays; import javax.tools.Diagnostic; import javax.tools.DiagnosticCollector; import javax.tools.JavaCompiler; import javax.tools.JavaFileObject; import javax.tools.StandardJavaFileManager; import javax.tools.ToolProvider; public class Main {

 public static void main(String args[]) throws IOException {
   JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
   DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
   StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null);
   Iterable<? extends JavaFileObject> compilationUnits = fileManager
       .getJavaFileObjectsFromStrings(Arrays.asList("YourFile.java"));
   Iterable<String> options = Arrays.asList("-d", "classes", "-sourcepath", "src");
   JavaCompiler.rupilationTask task = compiler.getTask(null, fileManager, diagnostics, options,
       null, compilationUnits);
   boolean success = task.call();
   for (Diagnostic diagnostic : diagnostics.getDiagnostics()) {
     System.out.println(diagnostic.getCode());
     System.out.println(diagnostic.getKind());
     System.out.println(diagnostic.getPosition());
     System.out.println(diagnostic.getStartPosition());
     System.out.println(diagnostic.getEndPosition());
     System.out.println(diagnostic.getSource());
     System.out.println(diagnostic.getMessage(null));
   }
   fileManager.close();
   System.out.println("Success: " + success);
 }

}



 </source>
   
  
 
  



Diagnostic: getKind()

   <source lang="java">
    

import java.io.IOException; import java.util.Arrays; import javax.tools.Diagnostic; import javax.tools.DiagnosticCollector; import javax.tools.JavaCompiler; import javax.tools.JavaFileObject; import javax.tools.StandardJavaFileManager; import javax.tools.ToolProvider; public class Main {

 public static void main(String args[]) throws IOException {
   JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
   DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
   StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null);
   Iterable<? extends JavaFileObject> compilationUnits = fileManager
       .getJavaFileObjectsFromStrings(Arrays.asList("YourFile.java"));
   Iterable<String> options = Arrays.asList("-d", "classes", "-sourcepath", "src");
   JavaCompiler.rupilationTask task = compiler.getTask(null, fileManager, diagnostics, options,
       null, compilationUnits);
   boolean success = task.call();
   for (Diagnostic diagnostic : diagnostics.getDiagnostics()) {
     System.out.println(diagnostic.getCode());
     System.out.println(diagnostic.getKind());
     System.out.println(diagnostic.getPosition());
     System.out.println(diagnostic.getStartPosition());
     System.out.println(diagnostic.getEndPosition());
     System.out.println(diagnostic.getSource());
     System.out.println(diagnostic.getMessage(null));
   }
   fileManager.close();
   System.out.println("Success: " + success);
 }

}



 </source>
   
  
 
  



Diagnostic: getLineNumber()

   <source lang="java">
    

import javax.tools.Diagnostic; import javax.tools.DiagnosticCollector; import javax.tools.JavaCompiler; import javax.tools.JavaFileObject; import javax.tools.StandardJavaFileManager; import javax.tools.ToolProvider; public class Main {

 public static void main(String[] args) {
   JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
   DiagnosticCollector<JavaFileObject> dc = new DiagnosticCollector<JavaFileObject>();
   StandardJavaFileManager sjfm = compiler.getStandardFileManager(dc, null, null);
   Iterable<? extends JavaFileObject> fileObjects = sjfm.getJavaFileObjects(args);
   compiler.getTask(null, sjfm, dc, null, null, fileObjects).call();
   for (Diagnostic d : dc.getDiagnostics()) {
     System.out.println(d.getMessage(null));
     System.out.printf("Line number = %d\n", d.getLineNumber());
     System.out.printf("File = %s\n", d.getSource());
   }
 }

}



 </source>
   
  
 
  



Diagnostic: getMessage(Locale locale)

   <source lang="java">
    

import java.io.IOException; import java.util.Arrays; import javax.tools.Diagnostic; import javax.tools.DiagnosticCollector; import javax.tools.JavaCompiler; import javax.tools.JavaFileObject; import javax.tools.StandardJavaFileManager; import javax.tools.ToolProvider; public class Main {

 public static void main(String args[]) throws IOException {
   JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
   DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
   StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null);
   Iterable<? extends JavaFileObject> compilationUnits = fileManager
       .getJavaFileObjectsFromStrings(Arrays.asList("YourFile.java"));
   Iterable<String> options = Arrays.asList("-d", "classes", "-sourcepath", "src");
   JavaCompiler.rupilationTask task = compiler.getTask(null, fileManager, diagnostics, options,
       null, compilationUnits);
   boolean success = task.call();
   for (Diagnostic diagnostic : diagnostics.getDiagnostics()) {
     System.out.println(diagnostic.getCode());
     System.out.println(diagnostic.getKind());
     System.out.println(diagnostic.getPosition());
     System.out.println(diagnostic.getStartPosition());
     System.out.println(diagnostic.getEndPosition());
     System.out.println(diagnostic.getSource());
     System.out.println(diagnostic.getMessage(null));
   }
   fileManager.close();
   System.out.println("Success: " + success);
 }

}



 </source>
   
  
 
  



Diagnostic: getPosition()

   <source lang="java">
    

import java.io.IOException; import java.util.Arrays; import javax.tools.Diagnostic; import javax.tools.DiagnosticCollector; import javax.tools.JavaCompiler; import javax.tools.JavaFileObject; import javax.tools.StandardJavaFileManager; import javax.tools.ToolProvider; public class Main {

 public static void main(String args[]) throws IOException {
   JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
   DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
   StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null);
   Iterable<? extends JavaFileObject> compilationUnits = fileManager
       .getJavaFileObjectsFromStrings(Arrays.asList("YourFile.java"));
   Iterable<String> options = Arrays.asList("-d", "classes", "-sourcepath", "src");
   JavaCompiler.rupilationTask task = compiler.getTask(null, fileManager, diagnostics, options,
       null, compilationUnits);
   boolean success = task.call();
   for (Diagnostic diagnostic : diagnostics.getDiagnostics()) {
     System.out.println(diagnostic.getCode());
     System.out.println(diagnostic.getKind());
     System.out.println(diagnostic.getPosition());
     System.out.println(diagnostic.getStartPosition());
     System.out.println(diagnostic.getEndPosition());
     System.out.println(diagnostic.getSource());
     System.out.println(diagnostic.getMessage(null));
   }
   fileManager.close();
   System.out.println("Success: " + success);
 }

}



 </source>
   
  
 
  



Diagnostic: getSource()

   <source lang="java">
    

import java.io.IOException; import java.util.Arrays; import javax.tools.Diagnostic; import javax.tools.DiagnosticCollector; import javax.tools.JavaCompiler; import javax.tools.JavaFileObject; import javax.tools.StandardJavaFileManager; import javax.tools.ToolProvider; public class Main {

 public static void main(String args[]) throws IOException {
   JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
   DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
   StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null);
   Iterable<? extends JavaFileObject> compilationUnits = fileManager
       .getJavaFileObjectsFromStrings(Arrays.asList("YourFile.java"));
   Iterable<String> options = Arrays.asList("-d", "classes", "-sourcepath", "src");
   JavaCompiler.rupilationTask task = compiler.getTask(null, fileManager, diagnostics, options,
       null, compilationUnits);
   boolean success = task.call();
   for (Diagnostic diagnostic : diagnostics.getDiagnostics()) {
     System.out.println(diagnostic.getCode());
     System.out.println(diagnostic.getKind());
     System.out.println(diagnostic.getPosition());
     System.out.println(diagnostic.getStartPosition());
     System.out.println(diagnostic.getEndPosition());
     System.out.println(diagnostic.getSource());
     System.out.println(diagnostic.getMessage(null));
   }
   fileManager.close();
   System.out.println("Success: " + success);
 }

}



 </source>
   
  
 
  



Diagnostic: getStartPosition()

   <source lang="java">
    

import java.io.File; import java.util.ArrayList; import java.util.List; import javax.tools.Diagnostic; import javax.tools.DiagnosticCollector; import javax.tools.JavaCompiler; import javax.tools.JavaFileObject; import javax.tools.StandardJavaFileManager; import javax.tools.ToolProvider; import javax.tools.JavaCompiler.rupilationTask; public class Main {

 public static void main(String[] args) throws Exception {
   String sourceFile = "c:/HelloWorld.Java";
   JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
   DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
   StandardJavaFileManager fileManager = compiler.getStandardFileManager(null, 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, null, null, null, compilationUnits);
   task.call();
   fileManager.close();
   List<Diagnostic<? extends JavaFileObject>> diagnosticList = diagnostics.getDiagnostics();
   for (Diagnostic<? extends JavaFileObject> diagnostic : diagnosticList) {
     System.out.println("Position:" + diagnostic.getStartPosition());
   }
 }

}



 </source>