Package javax.tools

Interface Tool

All Known Subinterfaces:
DocumentationTool, JavaCompiler

public interface Tool
Common interface for tools that can be invoked from a program. A tool is traditionally a command line program such as a compiler. The set of tools available with a platform is defined by the vendor.

Tools can be located using ServiceLoader.load(Class).

Since:
1.6
  • Method Summary

    Modifier and Type Method Description
    Set<SourceVersion> getSourceVersions()
    Returns the source versions of the Java programming language supported by this tool.
    default String name()
    Returns the name of this tool, or an empty string if no name is provided.
    int run​(InputStream in, OutputStream out, OutputStream err, String... arguments)
    Run the tool with the given I/O channels and arguments.
  • Method Details

    • name

      default String name()
      Returns the name of this tool, or an empty string if no name is provided.
      API Note:
      It is recommended that the name be the same as would be used on the command line: for example, "javac", "jar", "jlink".
      Implementation Note:
      This implementation returns an empty string.
      Returns:
      the name of this tool
      Since:
      9
    • run

      int run​(InputStream in, OutputStream out, OutputStream err, String... arguments)
      Run the tool with the given I/O channels and arguments. By convention a tool returns 0 for success and nonzero for errors. Any diagnostics generated will be written to either out or err in some unspecified format.
      Parameters:
      in - "standard" input; use System.in if null
      out - "standard" output; use System.out if null
      err - "standard" error; use System.err if null
      arguments - arguments to pass to the tool
      Returns:
      0 for success; nonzero otherwise
      Throws:
      NullPointerException - if the array of arguments contains any null elements.
    • getSourceVersions

      Set<SourceVersion> getSourceVersions()
      Returns the source versions of the Java programming language supported by this tool.
      Returns:
      a set of supported source versions