--- /dev/null
+#! /bin/bash
+
+APPNAME="CharacterManaJ"
+JARNAME="CharacterManaJ-0.9.9.9.jar"
+
+# JVMオプション
+declare -a jvm_options=()
+
+# 相対パスから絶対パスに変換する
+realpath() {
+ [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}"
+}
+
+# エラーを表示する
+function ShowMessage() {
+ if [[ -x /usr/bin/osascript ]]; then
+ /usr/bin/osascript -e "display alert \"$APPNAME\" message \"$1\""
+ else
+ echo "$APPNAME -- $1"
+ fi
+}
+
+# JVMに指定するオプションのテキストファイルをjvm_options配列に読み込む
+function read_jvm_options() {
+ while IFS='' read -r line || [[ -n $line ]]; do
+ line="${line//[$'\r\n']}" # 行端記号の除去(空白は残す)
+ trimline="${line//[$'\t\r\n ']}" # 空行判定のためタブ、行端、空白を除去
+ if [[ -n $trimline ]]; then
+ jvm_options+=("$line")
+ fi
+ done < "$1"
+}
+
+# このスクリプト基準のパスを求める
+SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")" && pwd)"
+RESOURCE_DIR="$(realpath "$SCRIPT_DIR/../Resources")"
+
+# JVMオプションがあれば読み取る
+if [[ -f $RESOURCE_DIR/jvm_options ]]; then
+ read_jvm_options $RESOURCE_DIR/options
+fi
+# JVMオプション(ユーザーディレクトリ上)
+if [[ -f ~/Library/${APPNAME}/jvm_options ]]; then
+ read_jvm_options ~/Library/${APPNAME}/jvm_options
+fi
+
+# JREの位置を検索する
+PLUGINS_JRE_DIR="$(realpath "${SCRIPT_DIR}/../Plugins/JRE")"
+if [[ -x ${PLUGINS_JRE_DIR}/Home/bin/java ]]; then
+ # バンドル内にある場合(パターン1)
+ JAVA_HOME="$(realpath "${PLUGINS_JRE_DIR}/Home/bin")"
+elif [[ -x ${PLUGINS_JRE_DIR}/bin/java ]]; then
+ # バンドル内にある場合(パターン2)
+ JAVA_HOME="$(realpath "${PLUGINS_JRE_DIR}/bin")"
+else
+ # バンドル内にない場合で、環境変数JAVA_HOMEがあれば、それを用いる。
+ # 環境変数JAVA_HOMEがなければ、/usr/libexec/java_home があれば、それを使う
+ if [[ -z $JAVA_HOME ]]; then
+ if [[ -x /usr/libexec/java_home ]]; then
+ JAVA_HOME="$(/usr/libexec/java_home)"
+ fi
+ fi
+fi
+
+if [[ -z $JAVA_HOME ]]; then
+ which java 2>/dev/null
+ if [[ $? -ne 0 ]]; then
+ # JAVA_HOMEが設定されておらず、且つ、javaにパスが通ってない場合はエラー
+ ShowMessage "Could not find Java SE Runtime Environment."
+ exit 2
+ fi
+ # JAVA_HOMEは未設定だがパスが通っていれば継続する
+ JAVA_CMD="java"
+else
+ # JAVA_HOMEが特定されている場合は、それを用いる
+ export JAVA_HOME
+ JAVA_CMD="$JAVA_HOME/bin/java"
+fi
+
+# JAVAをオプションとJARを指定して起動する
+if [[ -f $RESOURCE_DIR/$JARNAME ]]; then
+ "$JAVA_CMD" ${jvm_options[@]} -jar "$RESOURCE_DIR/$JARNAME" || ShowMessage "Failed to launch ${APPNAME}"
+else
+ ShowMessage "$JARNAME is not found."
+fi