User manual

Camel CLI Launcher

Available as of Camel 4.13

The Camel CLI without JBang: a distribution with scripts to run it, and a self-contained executable JAR.

Download from Maven Central.

Using the fat-jar directly

java -jar camel-launcher-<version>.jar version
java -jar camel-launcher-<version>.jar run hello.java

Extract the distribution archive:

unzip camel-launcher-<version>-bin.zip
# or
tar -xzf camel-launcher-<version>-bin.tar.gz

And then use the provided scripts:

# On Unix/Linux
./bin/camel.sh [command] [options]

# On Windows
bin\camel.bat [command] [options]

The distribution has the scripts in bin/ and the JARs in lib/. The scripts run java -jar lib/camel-launcher-<version>.jar, whose manifest names the other JARs of lib/ as its class path, which starts faster than the fat JAR.

Class data sharing

The scripts turn on class data sharing of the JVM: the classes that a command loads are kept in an archive, one per command and Camel version, so the command starts faster the next time. The first run of a command creates its archive, and takes longer, and the JVM creates it again when the JDK changes. The archives are in ${XDG_CACHE_HOME:-~/.cache}/camel-cli/cds (%LOCALAPPDATA%\camel-cli\cds on Windows), and can be removed at any time.

To turn it off, set CAMEL_CDS=false:

CAMEL_CDS=false camel version

CDS or AOT options in JAVA_OPTS (such as -Xshare:off or -XX:AOTCache) turn it off too. A JVM without class data sharing (such as OpenJ9) ignores the options.

Benefits

  • No JBang installation required

  • Faster startup (no dependency resolution, class data sharing in the distribution)

  • Lower memory usage (only loads classes actually used)

  • Pinned Camel version — upgrade by downloading a newer launcher

Limitations

The --camel-version option is not supported — it requires JBang to dynamically download a different version. Use a different launcher JAR version instead, or install via JBang: jbang app install camel@apache/camel.

More Information

See Installing the Camel CLI Launcher for the website installer scripts, camel self-update, and `camel doctor’s multi-install detection, and the general Camel CLI documentation.