The Daytona Java SDK provides a robust interface for programmatically interacting with Daytona Sandboxes. It targets Java 11+ and uses OkHttp and Jackson.
Installation
Gradle
Add the Daytona SDK dependency to your build.gradle.kts:
dependencies { implementation("io.daytona:sdk-java:0.1.0")}Maven
Add the Daytona SDK dependency to your pom.xml:
<dependency> <groupId>io.daytona</groupId> <artifactId>sdk-java</artifactId> <version>0.1.0</version></dependency>Getting Started
Create a Sandbox
Create a Daytona Sandbox to run your code securely in an isolated environment. The following snippet is an example “Hello World” program that runs securely inside a Daytona Sandbox.
import io.daytona.sdk.Daytona;import io.daytona.sdk.Sandbox;import io.daytona.sdk.model.ExecuteResponse;
public class Main { public static void main(String[] args) { // Initialize the SDK (uses environment variables by default) try (Daytona daytona = new Daytona()) { // Create a new sandbox Sandbox sandbox = daytona.create();
// Execute a command ExecuteResponse response = sandbox.getProcess().executeCommand("echo 'Hello, World!'"); System.out.println(response.getResult());
// Clean up sandbox.delete(); } }}Configuration
The Daytona SDK can be configured using environment variables or by passing a configuration object:
// Using environment variables (DAYTONA_API_KEY, DAYTONA_API_URL, DAYTONA_TARGET)Daytona daytona = new Daytona();// Using explicit configurationDaytonaConfig config = new DaytonaConfig.Builder() .apiKey("YOUR_API_KEY") .apiUrl("YOUR_API_URL") .target("us") .build();Daytona daytona = new Daytona(config);For more information on configuring the Daytona SDK, see configuration.