package
javax.tools


Hide details Login
Java SE 6
  

Provides interfaces for tools which can be invoked from a Java program, for example, Java compilers.

These interfaces and classes are required as part of Java SE, but there is no requirement to provide any tools implementing them.

Unless explicitly allowed, all methods in this package might throw a java.lang.NullPointerException if given a null argument or if given a list or collection containing null elements. Similarly, no method may return null unless explicitly allowed.

This package is the home of the Java Compiler Framework. This framework allows clients of the framework to locate and run Java compilers from Java programs. The framework also provides Service Provider Interfaces (SPI) for structured access to diagnostics (javax.tools.DiagnosticListener) as well as a file abstraction for overriding file access (javax.tools.JavaFileManager and javax.tools.JavaFileObject). See javax.tools.JavaCompiler for more details on using the SPI.

There is no requirement for a compiler at runtime. However, if a default compiler is provided, it can be located using the javax.tools.ToolProvider, for example:

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();

It is possible to provide alternative Java compilers or tools through the service provider mechanism.

For example, if com.vendor.VendorJavaCompiler is a provider of the JavaCompiler tool then its jar file would contain the file META-INF/services/javax.tools.JavaCompiler. This file would contain the single line:

com.vendor.VendorJavaCompiler

If the jar file is on the class path, VendorJavaCompiler can be located using code like this:

JavaCompiler compiler = ServiceLoader.load(JavaCompiler.class).iterator().next();
since1.6

Interfaces
Diagnostic
DiagnosticListener
FileObject
JavaCompiler
  .CompilationTask
JavaFileManager
  .Location

JavaFileObject
OptionChecker
StandardJavaFileManager
Tool

Enumerations
  .Kind
  .Kind
StandardLocation

Classes
DiagnosticCollector
ForwardingFileObject
ForwardingJavaFileManager
ForwardingJavaFileObject
SimpleJavaFileObject
ToolProvider