aAPT
dDebian
fFFmpeg
jJava
mMercurial: Usage
oOCaml
pPostgreSQL

Home Applications

JVM

Changing default JVM (Debian)

Just the interpreter

# update-alternatives --config java

or (to update all alternatives belonging to one runtime at once)

# update-java-alternatives --list
# update-java-alternatives [--jre|--jre-headless] --set JNAME

Selecting non-default JVM at runtime

Java interpreter

JAVA_HOME=/usr/lib/jvm/java-6-openjdk-amd64 PATH=$JAVA_HOME/bin:$PATH java -version

Wrapper script

javaw
#!/bin/sh

set -e

JVM_ROOT=/usr/lib/jvm
JVM_VENDOR=openjdk
JVM_ARCH=amd64

JVM_HOME=

usage () {
    echo "Usage: $(basename $0) [VERSION] [ARG...]"
    exit 0
}

case "$1" in
    "-h" | "--help") usage
        ;;
esac

if [ ! -z $1 ]; then
    JVM_HOME=$JVM_ROOT/java-$1-$JVM_VENDOR-$JVM_ARCH

    if [ -x "$JVM_HOME/bin/java" ]; then
        export JAVA_HOME=$JVM_HOME
        export PATH=$JAVA_HOME/bin:$PATH
        shift
    else
        JVM_HOME=
    fi
fi

java "$@"

Gradle

$ gradle -Dorg.gradle.java.home=/usr/lib/jvm/java-17-openjdk-amd64 [ARG...]

Wrapper script

gradlew
#!/usr/bin/sh

set -e

JVM_ROOT=/usr/lib/jvm
JVM_VENDOR=openjdk
JVM_ARCH=amd64

GRADLE_BIN=$(sed -n 's/^alias gradle *= *\(.*\).*/\1/p' ~/.bashrc | tr -d \'\")

if [ -z $GRADLE_BIN ]; then
    GRADLE_BIN=gradle
fi

GRADLE_JAVA_HOME=

usage () {
    echo "Usage: $(basename $0) [VERSION] [ARG...]"
    exit 0
}

case "$1" in
    "-h" | "--help") usage
        ;;
esac

if [ ! -z $1 ]; then
    JVM_HOME=$JVM_ROOT/java-$1-$JVM_VENDOR-$JVM_ARCH

    if [ -x "$JVM_HOME/bin/java" ]; then
        GRADLE_JAVA_HOME=-Dorg.gradle.java.home=$JVM_HOME
        shift
    else
        GRADLE_JAVA_HOME=
    fi
fi

"$GRADLE_BIN" "$GRADLE_JAVA_HOME" "$@"

Print ergonomically selected JVM flags

-XX:+PrintCommandLineFlags