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

© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.compiler/javax/tools/Tool.html