Files
2026-08-03 15:11:35 +08:00

39 lines
1.1 KiB
Bash
Executable File

#!/usr/bin/env sh
set -eu
SCRIPT_DIR=$(CDPATH= cd -- "$(dirname -- "$0")" && pwd)
APP_HOME=$(dirname -- "$SCRIPT_DIR")
JAR_PATH=""
for candidate in "$APP_HOME"/target/workutils-*.jar; do
if [ -f "$candidate" ] && [ "${candidate%-plain.jar}" = "$candidate" ]; then
JAR_PATH=$candidate
break
fi
done
if [ -z "$JAR_PATH" ]; then
echo "[ERROR] WorkUtils JAR not found under $APP_HOME/target" >&2
exit 1
fi
if ! command -v java >/dev/null 2>&1; then
echo "[ERROR] Java is not available. WorkUtils requires Java 17+." >&2
exit 1
fi
JAVA_VERSION=$(java -version 2>&1 | awk -F '"' '/version/ { print $2; exit }')
JAVA_MAJOR=$(printf '%s\n' "$JAVA_VERSION" | awk -F. '{ if ($1 == 1) print $2; else print $1 }')
case "$JAVA_MAJOR" in
''|*[!0-9]*)
echo "[ERROR] Unable to determine Java version: $JAVA_VERSION" >&2
exit 1
;;
esac
if [ "$JAVA_MAJOR" -lt 17 ]; then
echo "[ERROR] Java $JAVA_VERSION found. WorkUtils requires Java 17+." >&2
exit 1
fi
exec java -Dfile.encoding=UTF-8 "-Dworkutils.home=$APP_HOME" -jar "$JAR_PATH" "$@"