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