--- type: docs title: "Dapr Java SDK" linkTitle: "Java" weight: 1000 description: Java SDK packages for developing Dapr applications cascade: github_repo: https://github.com/dapr/java-sdk github_subdir: daprdocs/content/en/java-sdk-docs path_base_for_github_subdir: content/en/developing-applications/sdks/java/ github_branch: master --- Dapr offers a variety of packages to help with the development of Java applications. Using them you can create Java clients, servers, and virtual actors with Dapr. ## Prerequisites - [Dapr CLI]({{< ref install-dapr-cli.md >}}) installed - Initialized [Dapr environment]({{< ref install-dapr-selfhost.md >}}) - JDK 11 or above - the published jars are compatible with Java 8: - [AdoptOpenJDK 11 - LTS](https://adoptopenjdk.net/) - [Oracle's JDK 15](https://www.oracle.com/java/technologies/javase-downloads.html) - [Oracle's JDK 11 - LTS](https://www.oracle.com/java/technologies/javase-jdk11-downloads.html) - [OpenJDK](https://openjdk.java.net/) - Install one of the following build tools for Java: - [Maven 3.x](https://maven.apache.org/install.html) - [Gradle 6.x](https://gradle.org/install/) ## Import Dapr's Java SDK Next, import the Java SDK packages to get started. Select your preferred build tool to learn how to import. {{< tabs Maven Gradle >}} {{% codetab %}} For a Maven project, add the following to your `pom.xml` file: ```xml ... ... io.dapr dapr-sdk 1.12.2 io.dapr dapr-sdk-actors 1.12.2 io.dapr dapr-sdk-springboot 1.12.2 ... ... ``` {{% /codetab %}} {{% codetab %}} For a Gradle project, add the following to your `build.gradle` file: ```java dependencies { ... // Dapr's core SDK with all features, except Actors. compile('io.dapr:dapr-sdk:1.12.2') // Dapr's SDK for Actors (optional). compile('io.dapr:dapr-sdk-actors:1.12.2') // Dapr's SDK integration with SpringBoot (optional). compile('io.dapr:dapr-sdk-springboot:1.12.2') } ``` {{% /codetab %}} {{< /tabs >}} If you are also using Spring Boot, you may run into a common issue where the `OkHttp` version that the Dapr SDK uses conflicts with the one specified in the Spring Boot _Bill of Materials_. You can fix this by specifying a compatible `OkHttp` version in your project to match the version that the Dapr SDK uses: ```xml com.squareup.okhttp3 okhttp 1.12.2 ``` ## Try it out Put the Dapr Java SDK to the test. Walk through the Java quickstarts and tutorials to see Dapr in action: | SDK samples | Description | | ----------- | ----------- | | [Quickstarts]({{< ref quickstarts >}}) | Experience Dapr's API building blocks in just a few minutes using the Java SDK. | | [SDK samples](https://github.com/dapr/java-sdk/tree/master/examples) | Clone the SDK repo to try out some examples and get started. | ```java import io.dapr.client.DaprClient; import io.dapr.client.DaprClientBuilder; try (DaprClient client = (new DaprClientBuilder()).build()) { // sending a class with message; BINDING_OPERATION="create" client.invokeBinding(BINDING_NAME, BINDING_OPERATION, myClass).block(); // sending a plain string client.invokeBinding(BINDING_NAME, BINDING_OPERATION, message).block(); } ``` - For a full guide on output bindings visit [How-To: Output bindings]({{< ref howto-bindings.md >}}). - Visit [Java SDK examples](https://github.com/dapr/java-sdk/tree/master/examples/src/main/java/io/dapr/examples/bindings/http) for code samples and instructions to try out output bindings. ## Available packages
Client

Create Java clients that interact with a Dapr sidecar and other Dapr applications.

Workflow

Create and manage workflows that work with other Dapr APIs in Java.