# Prerequisites for Running IPED: Complete Setup Guide for the Digital Forensics Suite

> Discover the essential prerequisites for running IPED. Learn how to set up Git, Maven, Java 11 JDK with JavaFX, and configure JAVA_HOME for seamless digital forensics.

- Repository: [Serviço de Perícias em Informática/IPED](https://github.com/sepinf-inc/IPED)
- Tags: getting-started
- Published: 2026-03-11

---

**To run IPED (Integrated Processor of Evidence Digital), install Git, Maven 3.6 or higher, Java 11 JDK with JavaFX support (such as Liberica Full JDK), and set the JAVA_HOME environment variable; Linux users must additionally compile Sleuthkit 4.12.0.p1 from source.**

IPED is a Java-based open-source digital forensics suite maintained by sepinf-inc. Understanding the prerequisites for running IPED is essential before cloning the repository or attempting to build the project from source. The following requirements cover core compilation tools, runtime dependencies, and platform-specific libraries needed to execute both the desktop interface and web API components.

## Core Software Requirements

All platforms require a consistent Java build environment and build automation tools to compile the multi-module project defined in the root [`pom.xml`](https://github.com/sepinf-inc/IPED/blob/main/pom.xml).

### Version Control and Build Tools

IPED uses **Git** for source management and **Apache Maven** (version 3.6 or newer) for dependency resolution, compilation, and packaging across modules including `iped-api`, `iped-utils`, and `iped-parsers`. Maven handles the entire project lifecycle from the central [`pom.xml`](https://github.com/sepinf-inc/IPED/blob/main/pom.xml), where the `<maven.compiler.source>` and `<maven.compiler.target>` properties enforce Java 11 compliance.

### Java 11 JDK with JavaFX

The entire codebase targets Java 11. However, the graphical user interface in the `iped-app` module relies on JavaFX classes that are not included in standard JDK distributions. You must install a **Full JDK** that bundles JavaFX, such as **Liberica OpenJDK 11 Full JDK** or **Azul Zulu FX**. Without JavaFX, the application entry point in [`iped-app/src/main/java/iped/app/bootstrap/Bootstrap.java`](https://github.com/sepinf-inc/IPED/blob/main/iped-app/src/main/java/iped/app/bootstrap/Bootstrap.java) will throw runtime errors when attempting to initialize the desktop interface.

### Environment Configuration

Ensure the `JAVA_HOME` environment variable points to your JDK installation directory. Maven and the Java runtime require this variable to locate the compiler and standard libraries during both the build process and application execution.

## Platform-Specific Prerequisites

Certain dependencies vary by operating system, particularly for low-level disk image parsing.

### Linux Sleuthkit Dependency

On Linux, IPED requires **Sleuthkit 4.12.0.p1** to read disk images and file systems. The project interfaces with these native libraries through [`iped-engine/src/main/java/iped/engine/sleuthkit/SleuthkitServer.java`](https://github.com/sepinf-inc/IPED/blob/main/iped-engine/src/main/java/iped/engine/sleuthkit/SleuthkitServer.java). You must build Sleuthkit from source and ensure the shared libraries are visible via the `LD_LIBRARY_PATH` environment variable.

```bash

# Install build dependencies

sudo apt-get install autoconf automake libtool gcc make libssl-dev

# Clone and build Sleuthkit 4.12.0.p1

git clone https://github.com/sleuthkit/sleuthkit.git
cd sleuthkit
git checkout tags/4.12.0.p1
./configure && make && sudo make install

# Make libraries available to IPED

export LD_LIBRARY_PATH=/usr/local/lib:$LD_LIBRARY_PATH

```

Windows distributions typically bundle pre-compiled Sleuthkit binaries, eliminating this step.

## Optional Dependencies for Advanced Features

While IPED compiles successfully without these components, specific forensic features require external binaries present at runtime:

- **TensorFlow/Keras** – Required for nudity detection models
- **Stanford CoreNLP** – Required for named entity recognition (NER)
- **Tesseract 5** – Required for optical character recognition (OCR)

These are runtime dependencies checked only when specific processing modules are activated, as documented in the [`README.md`](https://github.com/sepinf-inc/IPED/blob/main/README.md) feature list.

## Building and Running IPED

Once prerequisites are met, you can build the project and launch either the desktop GUI or the REST web API.

### Clone and Build from Source

Execute the following commands from your terminal to download the source and compile all modules:

```bash
git clone https://github.com/sepinf-inc/IPED.git
cd IPED
mvn clean install

```

After a successful build, Maven creates a snapshot distribution in `target/release/iped-4.4.0-SNAPSHOT` (or the current version defined in [`pom.xml`](https://github.com/sepinf-inc/IPED/blob/main/pom.xml)), containing all necessary JARs and configuration files.

### Launch the Desktop Application

Run the graphical interface by executing the main JAR built from the `iped-app` module:

```bash
java -jar iped-app/target/iped-app-4.4.0-SNAPSHOT.jar

```

This invokes the `main` method in `iped.app.bootstrap.Bootstrap`, which initializes the JavaFX interface and loads the forensic processing engine.

### Start the Web API Server

For headless operation or integration with external systems, start the embedded REST server using the entry point in [`iped-engine/src/main/java/iped/engine/webapi/Main.java`](https://github.com/sepinf-inc/IPED/blob/main/iped-engine/src/main/java/iped/engine/webapi/Main.java):

```bash
java -cp iped-engine/target/iped-engine-4.4.0-SNAPSHOT.jar iped.engine.webapi.Main

```

This mode exposes IPED's processing capabilities via HTTP endpoints without requiring JavaFX or a display server.

## Summary

- **Universal requirements**: Git, Maven 3.6+, Java 11 JDK with JavaFX, and correctly configured `JAVA_HOME`
- **Linux-specific**: Compile Sleuthkit 4.12.0.p1 from source and configure `LD_LIBRARY_PATH` via the [`SleuthkitServer.java`](https://github.com/sepinf-inc/IPED/blob/main/SleuthkitServer.java) wrapper
- **Build process**: `mvn clean install` processes the root [`pom.xml`](https://github.com/sepinf-inc/IPED/blob/main/pom.xml) with Java 11 compiler settings across all modules
- **Execution modes**: Desktop UI via [`Bootstrap.java`](https://github.com/sepinf-inc/IPED/blob/main/Bootstrap.java) or headless API server via [`Main.java`](https://github.com/sepinf-inc/IPED/blob/main/Main.java) in their respective target directories
- **Optional enhancements**: Install TensorFlow, Stanford CoreNLP, or Tesseract 5 to enable AI/ML processing features

## Frequently Asked Questions

### Can I use Java 17 or newer to run IPED?

While the [`pom.xml`](https://github.com/sepinf-inc/IPED/blob/main/pom.xml) specifies Java 11 as the source and target version, you can compile and run IPED with newer JDK versions provided they maintain backward compatibility with Java 11 APIs and include JavaFX support. However, Java 11 remains the officially tested baseline for stable operation.

### Why does IPED fail to start with "JavaFX not found" even though I have JDK 11?

This error occurs when using a JDK distribution that strips JavaFX, such as standard OpenJDK 11. Install a Full JDK distribution like Liberica OpenJDK 11 Full or Azul Zulu FX that bundles the JavaFX runtime libraries required by the `iped-app` module's [`Bootstrap.java`](https://github.com/sepinf-inc/IPED/blob/main/Bootstrap.java) entry point.

### Is Sleuthkit required on Windows and macOS?

No. The [`SleuthkitServer.java`](https://github.com/sepinf-inc/IPED/blob/main/SleuthkitServer.java) wrapper and native library dependency is specific to Linux builds. Windows distributions bundle pre-compiled Sleuthkit binaries, while macOS may require different handling depending on the release. Only Linux users must manually compile version 4.12.0.p1 from source.

### How do I verify that Maven is using the correct Java version?

Run `mvn -version` and confirm the output shows the JDK path defined in your `JAVA_HOME` variable and lists Java version 11 or higher. The `maven.compiler.source` and `maven.compiler.target` properties in [`pom.xml`](https://github.com/sepinf-inc/IPED/blob/main/pom.xml) enforce compilation compliance with Java 11 language features across all project modules.