3 APPNAME="CharacterManaJ"
4 JARNAME="CharacterManaJ.jar"
7 declare -a jvm_options=()
11 [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}"
15 function ShowMessage() {
16 if [[ -x /usr/bin/osascript ]]; then
17 /usr/bin/osascript -e "display alert \"$APPNAME\" message \"$1\""
23 # JVMに指定するオプションのテキストファイルをjvm_options配列に読み込む
24 function read_jvm_options() {
25 while IFS='' read -r line || [[ -n $line ]]; do
26 line="${line//[$'\r\n']}" # 行端記号の除去(空白は残す)
27 trimline="${line//[$'\t\r\n ']}" # 空行判定のためタブ、行端、空白を除去
28 if [[ -n $trimline ]]; then
29 jvm_options+=("$line")
35 SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]:-$0}")" && pwd)"
36 RESOURCE_DIR="$(realpath "$SCRIPT_DIR/../Resources")"
39 if [[ -f "$RESOURCE_DIR/jvm_options" ]]; then
40 read_jvm_options "$RESOURCE_DIR/jvm_options"
42 # JVMオプション(ユーザーディレクトリ上)
43 if [[ -f "${HOME}/Library/${APPNAME}/jvm_options" ]]; then
44 read_jvm_options "${HOME}/Library/${APPNAME}/jvm_options"
48 PLUGINS_JRE_DIR="$(realpath "${SCRIPT_DIR}/../Plugins/JRE")"
49 if [[ -x "${PLUGINS_JRE_DIR}/Home/bin/java" ]]; then
51 JAVA_HOME="$(realpath "${PLUGINS_JRE_DIR}/Home")"
52 elif [[ -x "${PLUGINS_JRE_DIR}/bin/java" ]]; then
54 JAVA_HOME="$(realpath "${PLUGINS_JRE_DIR}")"
56 # バンドル内にない場合で、環境変数JAVA_HOMEがあれば、それを用いる。
57 # 環境変数JAVA_HOMEがなければ、/usr/libexec/java_home があれば、それを使う
58 if [[ -z "$JAVA_HOME" ]]; then
59 if [[ -x "/usr/libexec/java_home" ]]; then
60 JAVA_HOME="$(/usr/libexec/java_home)"
65 if [[ -z "$JAVA_HOME" ]]; then
66 which java 2>/dev/null
67 if [[ $? -ne 0 ]]; then
68 # JAVA_HOMEが設定されておらず、且つ、javaにパスが通ってない場合はエラー
69 ShowMessage "Could not find Java SE Runtime Environment."
72 # JAVA_HOMEは未設定だがパスが通っていれば継続する
75 # JAVA_HOMEが特定されている場合は、それを用いる
77 JAVA_CMD="$JAVA_HOME/bin/java"
80 # JAVAをオプションとJARを指定して起動する
81 if [[ -f $RESOURCE_DIR/$JARNAME ]]; then
82 "$JAVA_CMD" ${jvm_options[@]} -jar "$RESOURCE_DIR/$JARNAME" || ShowMessage "Failed to launch ${APPNAME}"
84 ShowMessage "$JARNAME is not found."