io7m | single-page | multi-page | Laurel User Manual 0.99.1-SNAPSHOT
1. Overview
Previous
Front Matter
Up
3. Usage
Next

# 2. Installation

- 2.1. Overview
- 2.2. Portable Application Distribution

## 2.1. Overview

1
There are several ways to install the Laurel application.

## 2.2. Portable Application Distribution

1
The portable application distribution is simply a zip archive consisting of a couple of frontend shell scripts and the Java jar files that comprise the application. This distribution is mostly platform-independent [1], but requires some (fairly straightforward) manual setup.
2
The distribution uses your locally installed Java VM. First, check that you have a JDK 21 or higher JVM installed:

### 2.2.3. Java Version

    $ java -version
    openjdk version "21.0.4" 2024-07-16
    OpenJDK Runtime Environment (build 21.0.4+7)
    OpenJDK 64-Bit Server VM (build 21.0.4+7, mixed mode, sharing)

4
The application distribution is a zip file with a laurel directory in the root of the zip archive.

### 2.2.5. Unzip

    $ unzip com.io7m.laurel.distribution-0.99.1-SNAPSHOT-distribution.zip
       creating: laurel/
       creating: laurel/bin/
      inflating: laurel/bin/laurel
      inflating: laurel/bin/laurel-ui
       creating: laurel/lib/
      inflating: laurel/lib/com.io7m.anethum.api-1.1.1.jar
      inflating: laurel/lib/com.io7m.blackthorne.core-2.0.2.jar
      inflating: laurel/lib/com.io7m.blackthorne.jxe-2.0.2.jar
      inflating: laurel/lib/com.io7m.darco.api-1.0.0.jar
      inflating: laurel/lib/com.io7m.darco.sqlite-1.0.0.jar
    ...

6
On UNIX-like platforms, ensure the included frontend scripts are executable:

### 2.2.7. chmod

    $ chmod +x laurel/bin/*

8
Set the LAUREL_HOME environment variable to the directory:

### 2.2.9. LAUREL_HOME

    $ export LAUREL_HOME=$(realpath laurel)

10
Now run either laurel/bin/laurel for the command-line tool, or laurel/bin/laurel-ui for the graphical user interface.

### 2.2.11. laurel

    $ laurel/bin/laurel version
    com.io7m.laurel 1.0.0-SNAPSHOT 7e810b7cda6e7d8db2032fdb936f9260aaf906f2

## Footnotes

1 | Unfortunately, JavaFX does not allow for platform-independence due to including rather incompetently-packaged platform-specific artifacts. The command-line tools are usable on the fairly huge range of underlying platforms that the sqlite-jdbc library supports. References to this footnote: 1

1. Overview
Previous
Front Matter
Up
3. Usage
Next
io7m | single-page | multi-page | Laurel User Manual 0.99.1-SNAPSHOT