| --- |
| 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>≥ 2.69.0</td> |
| </tr> |
| <tr> |
| <td>21</td> |
| <td>≥ 2.52.0</td> |
| </tr> |
| <tr> |
| <td>17</td> |
| <td>≥ 2.37.0</td> |
| </tr> |
| <tr> |
| <td>11</td> |
| <td>≥ 2.29.0</td> |
| </tr> |
| <tr> |
| <td>8</td> |
| <td>2.x</td> |
| </tr> |
| </table> |