# JavaToolchainInfo

Provides access to information about the Java toolchain rule. Accessible as a 'java_toolchain' field on a Target struct.

## Members

- bootclasspath
- compatible_javacopts
- jacocorunner
- java_runtime
- jvm_opt
- one_version_allowlist
- one_version_tool
- single_jar
- source_version
- target_version
- timezone_data
- to_json
- to_proto
- tools

## bootclasspath

    depset JavaToolchainInfo.bootclasspath

The Java target bootclasspath entries. Corresponds to javac's -bootclasspath flag.

## compatible_javacopts

    list JavaToolchainInfo.compatible_javacopts(key)

Return the map of target environment-specific javacopts

### Parameters

Parameter | Description
--- | ---
`key` | `string`; required

May return `None`.

## jacocorunner

    FilesToRunProvider JavaToolchainInfo.jacocorunner

The jacocorunner used by the toolchain. May return `None`.

## java_runtime

    JavaRuntimeInfo JavaToolchainInfo.java_runtime

The java runtime information.

## jvm_opt

    depset JavaToolchainInfo.jvm_opt

The default options for the JVM running the java compiler and associated tools.

## one_version_allowlist

    File JavaToolchainInfo.one_version_allowlist

The allowlist used by the One-Version compliance checker May return `None`.

## one_version_tool

    FilesToRunProvider JavaToolchainInfo.one_version_tool

The tool that enforces One-Version compliance of java binaries. May return `None`.

## single_jar

    FilesToRunProvider JavaToolchainInfo.single_jar

The SingleJar tool.

## source_version

    string JavaToolchainInfo.source_version

The java source version.

## target_version

    string JavaToolchainInfo.target_version

The java target version.

## timezone_data

    File JavaToolchainInfo.timezone_data()

The latest timezone data resource jar that can be loaded by java binaries May return `None`.

## to_json

    string JavaToolchainInfo.to_json()

Deprecated. This API is deprecated and will be removed soon. Please do not depend on it. It is disabled with `---incompatible_struct_has_no_methods`. Use this flag to verify your code is compatible with its imminent removal.
Creates a JSON string from the struct parameter. This method only works if all struct elements (recursively) are strings, ints, booleans, other structs, a list of these types or a dictionary with string keys and values of these types. Quotes and new lines in strings are escaped. Examples:

    struct(key=123).to_json()
    # {"key":123}

    struct(key=True).to_json()
    # {"key":true}

    struct(key=[1, 2, 3]).to_json()
    # {"key":[1,2,3]}

    struct(key='text').to_json()
    # {"key":"text"}

    struct(key=struct(inner_key='text')).to_json()
    # {"key":{"inner_key":"text"}}

    struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_json()
    # {"key":[{"inner_key":1},{"inner_key":2}]}

    struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_json()
    # {"key":{"inner_key":{"inner_inner_key":"text"}}}

.

Deprecated: instead, use json.encode(x) or json.encode_indent(x), which work for values other than structs and do not pollute the struct field namespace.

## to_proto

    string JavaToolchainInfo.to_proto()

Deprecated. This API is deprecated and will be removed soon. Please do not depend on it. It is disabled with `---incompatible_struct_has_no_methods`. Use this flag to verify your code is compatible with its imminent removal.
Creates a text message from the struct parameter. This method only works if all struct elements (recursively) are strings, ints, booleans, other structs or dicts or lists of these types. Quotes and new lines in strings are escaped. Struct keys are iterated in the sorted order. Examples:

    struct(key=123).to_proto()
    # key: 123

    struct(key=True).to_proto()
    # key: true

    struct(key=[1, 2, 3]).to_proto()
    # key: 1
    # key: 2
    # key: 3

    struct(key='text').to_proto()
    # key: "text"

    struct(key=struct(inner_key='text')).to_proto()
    # key {
    #   inner_key: "text"
    # }

    struct(key=[struct(inner_key=1), struct(inner_key=2)]).to_proto()
    # key {
    #   inner_key: 1
    # }
    # key {
    #   inner_key: 2
    # }

    struct(key=struct(inner_key=struct(inner_inner_key='text'))).to_proto()
    # key {
    #    inner_key {
    #     inner_inner_key: "text"
    #   }
    # }

    struct(foo={4: 3, 2: 1}).to_proto()
    # foo: {
    #   key: 4
    #   value: 3
    # }
    # foo: {
    #   key: 2
    #   value: 1
    # }

Deprecated: use proto.encode_text(x) instead.

## tools

    depset JavaToolchainInfo.tools

The compilation tools.