# Class ToolProvider

java.lang.Object
javax.tools.ToolProvider

public class ToolProvider extends Object
Provides methods for locating tool providers, for example, providers of compilers. This class complements the functionality of `ServiceLoader`.

Since:
  1.6

- ## Method Summary

  Modifier and Type
  Method
  Description
  `static DocumentationTool`
  `getSystemDocumentationTool()`
  Returns the Java programming language documentation tool provided with this platform.
  `static JavaCompiler`
  `getSystemJavaCompiler()`
  Returns the Java programming language compiler provided with this platform.
  `static ClassLoader`
  `getSystemToolClassLoader()`
  Deprecated.
  This method is subject to removal in a future version of Java SE.

  ### Methods declared in class Object

  `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`
  Modifier and Type
  Method
  Description
  `protected Object`
  `clone()`
  Creates and returns a copy of this object.
  `boolean`
  `equals(Object obj)`
  Indicates whether some other object is "equal to" this one.
  `protected void`
  `finalize()`
  Deprecated, for removal: This API element is subject to removal in a future version.
  Finalization is deprecated and subject to removal in a future release.
  `final Class<?>`
  `getClass()`
  Returns the runtime class of this `Object`.
  `int`
  `hashCode()`
  Returns a hash code value for this object.
  `final void`
  `notify()`
  Wakes up a single thread that is waiting on this object's monitor.
  `final void`
  `notifyAll()`
  Wakes up all threads that are waiting on this object's monitor.
  `String`
  `toString()`
  Returns a string representation of the object.
  `final void`
  `wait()`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted.
  `final void`
  `wait(long timeoutMillis)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.
  `final void`
  `wait(long timeoutMillis, int nanos)`
  Causes the current thread to wait until it is awakened, typically by being notified or interrupted, or until a certain amount of real time has elapsed.

- ## Method Details

  - ### getSystemJavaCompiler

    public static JavaCompiler getSystemJavaCompiler()
    Returns the Java programming language compiler provided with this platform.

    The file manager returned by calling `getStandardFileManager` on this compiler supports paths provided by any filesystem.

    Implementation Note:
      This implementation returns the compiler provided by the `jdk.compiler` module if that module is available, and `null` otherwise.
    Returns:
      the compiler provided with this platform or `null` if no compiler is provided

  - ### getSystemDocumentationTool

    public static DocumentationTool getSystemDocumentationTool()
    Returns the Java programming language documentation tool provided with this platform.

    The file manager returned by calling `getStandardFileManager` on this tool supports paths provided by any filesystem.

    Implementation Note:
      This implementation returns the tool provided by the `jdk.javadoc` module if that module is available, and `null` otherwise.
    Returns:
      the documentation tool provided with this platform or `null` if no documentation tool is provided

  - ### getSystemToolClassLoader

    @Deprecated(since="9") public static ClassLoader getSystemToolClassLoader()
    Deprecated.
    This method is subject to removal in a future version of Java SE. Use the system tool provider or service loader mechanisms to locate system tools as well as user-installed tools.
    Returns a class loader that may be used to load system tools, or `null` if no such special loader is provided.
    Implementation Requirements:
      This implementation always returns `null`.
    Returns:
      a class loader, or `null`