bin/isabelle_java
changeset 63995 2e4d80723fb0
child 64022 3c0193f82d20
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/bin/isabelle_java	Sun Oct 02 17:05:48 2016 +0200
@@ -0,0 +1,70 @@
+#!/usr/bin/env bash
+#
+# Author: Makarius
+#
+# Isabelle/Java cold start -- without settings environment
+
+if [ -L "$0" ]; then
+  TARGET="$(LC_ALL=C ls -l "$0" | sed 's/.* -> //')"
+  exec "$(cd "$(dirname "$0")"; cd "$(pwd -P)"; cd "$(dirname "$TARGET")"; pwd)/$(basename "$TARGET")" "$@"
+fi
+
+export ISABELLE_HOME="$(cd "$(dirname "$0")"; cd "$(pwd -P)"; cd ..; pwd)"
+
+(
+  source "$ISABELLE_HOME/lib/scripts/getsettings" || exit 2
+
+  declare -a JAVA_ARGS; eval "JAVA_ARGS=($ISABELLE_JAVA_SYSTEM_OPTIONS)"
+
+  if [ -f "$ISABELLE_HOME/src/Tools/jEdit/dist/jedit.jar" ]; then
+    classpath "$ISABELLE_HOME/src/Tools/jEdit/dist/jedit.jar"
+  fi
+
+  [ -n "$CLASSPATH" ] && classpath "$CLASSPATH"
+
+  echo "$ISABELLE_ROOT"
+  echo "$CYGWIN_ROOT"
+  echo "$JAVA_HOME"
+  echo "$(platform_path "$ISABELLE_CLASSPATH")"
+  for ARG in "${JAVA_ARGS[@]}"; do echo "$ARG"; done
+) | {
+  LINE_COUNT=0
+  export ISABELLE_ROOT=""
+  export CYGWIN_ROOT=""
+  unset JAVA_HOME
+  unset ISABELLE_CLASSPATH
+  unset JAVA_ARGS; declare -a JAVA_ARGS
+
+  while { unset REPLY; read -r; test "$?" = 0 -o -n "$REPLY"; }
+  do
+    case "$LINE_COUNT" in
+      0)
+        LINE_COUNT=1
+        ISABELLE_ROOT="$REPLY"
+        ;;
+      1)
+        LINE_COUNT=2
+        CYGWIN_ROOT="$REPLY"
+        ;;
+      2)
+        LINE_COUNT=3
+        JAVA_HOME="$REPLY"
+        ;;
+      3)
+        LINE_COUNT=4
+        ISABELLE_CLASSPATH="$REPLY"
+        ;;
+      *)
+        JAVA_ARGS["${#JAVA_ARGS[@]}"]="$REPLY"
+        ;;
+    esac
+  done
+
+  if [ -z "$JAVA_HOME" ]; then
+    echo "Unknown JAVA_HOME -- Java unavailable" >&2
+    exit 127
+  else
+    unset CLASSPATH
+    exec "$JAVA_HOME/bin/java" "${JAVA_ARGS[@]}" -classpath "$ISABELLE_CLASSPATH" "$@"
+  fi
+}