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