diff --git a/README.md b/README.md index 5cbd432..ebf6257 100644 --- a/README.md +++ b/README.md @@ -1,16 +1,29 @@ # Warp4j -Turn Java application into self-contained executable. +Turn JAR (java application archive) into self-contained executable. ## Features -- automatically downloads JDKs -- creates custom runtimes optimized for your application +- automatically downloads java runtimes +- creates runtimes optimized for your application - creates self-contained binaries for Linux, MacOS and Windows using [warp-packer](https://github.com/dgiagio/warp) +## TL;DR + +Just put both `warp4j` and `warp-packer` somewhere in your PATH and run `warp4j app.jar`. + ## Install -TODO +First install [warp-packer](https://github.com/dgiagio/warp/releases) and ensure other common tools available: `curl`, `awk`, `sed`. Then install `warp4j` like this: + +```bash +$ LOCATION=/usr/local/bin \ +LINK=https://raw.githubusercontent.com/guziks/warp4j/master/warp4j \ +TEMP_LOCATION=/tmp/warp4j \ +curl -fsSL -o $TEMP_LOCATION $LINK && \ +chmod 755 $TEMP_LOCATION && \ +sudo mv $TEMP_LOCATION $LOCATION/warp4j +``` ## Usage @@ -29,23 +42,50 @@ warped $ ls warped my-app-linux -my-app.linux-x64.tar.gz -my-app-osx -my-app.osx-x64.tar.gz +my-app-linux-x64.tar.gz +my-app-macos +my-app-macos-x64.tar.gz my-app-windows.exe -my-app.windows-x64.zip +my-app-windows-x64.zip ``` See help: ```bash $ wapr4j --help + +Usage: warp4j [options] + +Turn JAR (java application archive) into self-contained executable + +Options: + -j, --java-version + override JDK/JRE version + examples: "11", "11.0", "11.0.2", "11.0.2+9" + default: 11 + --no-optimize use JRE instead of optimized JDK + by default jdeps and jlink are used to create + optimized JDK for the partiular jar, + JRE is always used for java 8 + --pull check if more recent JDK/JRE distro is available + by default latest cached version that matches + "--java-version" is used + --target-linux create binary for Linux + --target-macos create binary for macOS + --target-windows create binary for Windows + if no targets specified then create for all + --jvm-impl jvm implementation: hotspot or openj9 + default: hotspot + --jvm-options + passed to java like this: + "java -jar " + -h, --help show this help ``` ## Cache Location -Downloaded JDKs and prepared bundles are here: +Downloaded runtimes and prepared bundles are here: -```bash -$HOME/.local/share/warp4j/ -``` +- Linux: `$HOME/.local/share/warp4j` +- macOS: `$HOME/Library/Application Support/warp4j` +- Windows: `%LOCALAPPDATA%\warp4j`