Skip to content

App KBean

Provides a way to install, update, or remove applications from the user PATH.

Applications are installed from a Git repository and built by the client before installation. Applications can be installed as executable JARs or native apps.

Install Applications

jeka app: install repo=<repo-url>

Install an application in native mode

jeka app: install repo=<repo-url> native:

Example:

jeka app: install repo=https://github.com/djeang/kill8 name=kill8 native:

List Installed Applications

jeka app: list
This displays the the name of the applications, along their repo, version/status, and runtime type.
App Name   │ Repo                                      │ Version  │ Status     │ Runtime │ 
calculator │ https://github.com/djeang/Calculator-jeka │ latest   │ up-to-date │ jvm     │ 
kill8      │ https://github.com/djeang/kill8           │ <master> │ up-to-date │ native  │ 

Update Applications

jeka app: update name=kill8
Updates the application to the highest semantic version tag. If a 'latest' tag exists, uses that tag. If no tags exist, uses the latest commit.

Uninstall Applications

jeka app: uninstall name=kill8

Catalogs

Display the registered catalogs of applications:

jeka app: catalog

Display application registered in a given catalog:

jeka app:  name=demo 

To add a catalog, add the following lines to your ~/.jeka/global.properties file.

catalog.xxx.repo=[http location or git repo url]
catalog.xxx.desc=[Description of the catalog]
where xxxx stands for the name of your catalog.

catalog.xxx.repo can value a url pointing at the catalog file, or the url of the Github repo containing the catalog file.

Both examples are valid:

# Inside the `demo' repo of the 'jeka-dev' Github organization. 
# The jeka-catalog.properties file is expected at the repo root.
catalog.demo.repo=jeka-dev/demo

# Inside the `jeka-catalog' repo of the 'djeang' Github organization.
# The jeka-catalog.properties file is expected at the repo root.
catalog.djeang.repo=djeang

# Direct pointing at the url.
catalog.foo.repo=https://raw.githubusercontent.com/jeka-dev/jeka-catalog/refs/heads/main/jeka-catalog.properties

Catalog file example:

app.cowsay.repo=https://github.com/jeka-dev/demo-cowsay
app.cowsay.desc=Java port or the Cowsay famous CLI.
app.cowsay.type=CLI

app.demo-springboot-angular.repo=https://github.com/jeka-dev/demo-project-springboot-angular
app.demo-springboot-angular.desc=Manage a list of users. Written in Springboot and Angular
app.demo-springboot-angular.type=SERVER-UI

Security

Trusted URL prefixes are stored in the jeka.apps.url.trusted property, located in the ~/.jeka/global.properties file.
You can adjust this property later to make it more or less restrictive.
The check validates the start of the Git URL after removing the protocol and identifier part.

Example: jeka.app.url.trusted=github.com/djeang/ will trust urls formed as:

  • https://github.com/djeang/xxx...
  • https://my-user-name@github.com/djeang/xxx...
  • git@github.com/djeang/xxx..
  • git@github.com:my-user-name/djeang/xxx..
  • ...

Provides a way to install, update, or remove applications from the user PATH.

Applications are installed from a Git repository and built by the client before installation. Applications can be installed as executable JARs or native apps.

This KBean exposes the following fields:

Field Description
repo [String] Git Remote repository URL of the app to install.
name [String] Specifies the name of the app to update/uninstall.
description [String] Short description of the app provided by the application author.
url [String] Specifies the url to trust.

This KBean exposes the following methods:

Method Description
catalog List application catalogs.
install Builds and installs the app to make it available in PATH.
Use repo=[Git URL] to set the source repository.
Use native: argument to install as a native app.
list Lists installed Jeka commands in the user's PATH.
trustUrl Adds permanently the url to the trusted list.
The urls starting with the specified prefix will be automatically trusted.
Use 'url=my.host/my.path/' to specify the prefix.
uninstall Uninstalls an app from the user's PATH.
Use name=[app-name] to specify the app.
update Updates an app from the given name.
Use name=[app-name] to specify the app name.