---
layout: docs
page_title: 'Drivers: Rookout'
description: The Rookout driver is used to run your Java app with Rookout.
---

# Rookout Driver

Name: `java-rookout`

The Rookout Nomad driver is used to execute Java applications packaged into a Java Jar file and automatically add the Rookout SDK to them.

[Rookout](https://rookout.com) is a developer solution for Cloud Native debugging and live-data collection. Rookout’s Non-Breaking Breakpoints let you collect any type of data on the fly with no extra coding, redeployments, or restarts.

More info about the Rookout SDK is available in the [Rookout docs](https://docs.rookout.com).

## Prerequisites

Using this driver requires you to have a Rookout token which you can get by [signing up](http://rookout.com).

This driver is based on the Nomad [Java driver](/nomad/docs/drivers/java).

1. Clone the driver's repo: `git clone https://github.com/rookout/rookout-nomad-driver`
2. Change to the cloned dir: `cd rookout-nomad-driver`
3. Create a plugin dir (unless you already have one for your Nomad installation): `mkdir plugins`
4. Copy the corresponding binary from the `bin` folder, for example: `cp ./bin/java-rookout-linux-x64 plugins/java-rookout`
5. Make sure that the driver has execution permission: `chmod +x ./plugins/java-rookout`
6. When running the Nomad agent, be sure to set the plugins dir accordingly, for example: `sudo nomad agent -dev -plugin-dir=/home/user/rookout-nomad-driver/plugins`

## Task Configuration

The `java-rookout` driver accepts all configuration options of the [`java`](/nomad/docs/drivers/java) driver.

Set the `rookout_token` config key to your Rookout token, or define it as a variable and pass it as a parameter.

For example:
```hcl
task "run-with-rookout" {
  driver = "java-rookout"

  config {
    rookout_token = "ea15c38c4e05cf4549b..."
  }
}
```

Additional Rookout configuration can be passed as environment variables like so:
```hcl
env {
    ROOKOUT_REMOTE_ORIGIN="https://github.com/Rookout/tutorial-java"
}
```
