blob: 971d9951197f9dc90a11e5fde2244df68810b778 [file] [view]
---
type: languages
title: "Beam Java SDK"
aliases: /learn/sdks/java/
---
<!--
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
# Apache Beam Java SDK
The Java SDK for Apache Beam provides a simple, powerful API for building both batch and streaming parallel data processing pipelines in Java.
## Get Started with the Java SDK
Get started with the [Beam Programming Model](/documentation/programming-guide/) to learn the basic concepts that apply to all SDKs in Beam.
See the [Java API Reference](https://beam.apache.org/releases/javadoc/) for more information on individual APIs.
## Supported Features
The Java SDK supports all features currently supported by the Beam model.
## Pipeline I/O
See the [Beam-provided I/O Transforms](/documentation/io/built-in/) page for a list of the currently available I/O transforms.
## Extensions
The Java SDK has the following extensions:
- [join-library](/documentation/sdks/java-extensions/#join-library) provides inner join, outer left join, and outer right join functions.
- [sorter](/documentation/sdks/java-extensions/#sorter) is an efficient and scalable sorter for large iterables.
- [Nexmark](/documentation/sdks/java/testing/nexmark) is a benchmark suite that runs in batch and streaming modes.
- [TPC-DS](/documentation/sdks/java/testing/tpcds) is a SQL benchmark suite that runs in batch mode.
- [euphoria](/documentation/sdks/java/euphoria) is easy to use Java 8 DSL for BEAM.
In addition several [3rd party Java libraries](/documentation/sdks/java-thirdparty/) exist.
## Java multi-language pipelines quickstart
Apache Beam lets you combine transforms written in any supported SDK language and use them in one multi-language pipeline. To learn how to create a multi-language pipeline using the Java SDK, see the [Java multi-language pipelines quickstart](/documentation/sdks/java-multi-language-pipelines).
## Java Version Compatibility
<table class="table table-bordered">
<tr>
<th>Java Version</th>
<th>Supported Beam Versions</th>
</tr>
<tr>
<td>25</td>
<td>&ge; 2.69.0</td>
</tr>
<tr>
<td>21</td>
<td>&ge; 2.52.0</td>
</tr>
<tr>
<td>17</td>
<td>&ge; 2.37.0</td>
</tr>
<tr>
<td>11</td>
<td>&ge; 2.29.0</td>
</tr>
<tr>
<td>8</td>
<td>2.x</td>
</tr>
</table>