From c6ef894263068839782716fece54154effd3d0fe Mon Sep 17 00:00:00 2001 From: Keith Packard Date: Mon, 22 Mar 2021 00:02:33 -0700 Subject: [PATCH] Add Mac OS X 11 support to JavaApplicationStub --- .../Contents/MacOS/JavaApplicationStub | 33 +++++++++++++++---- .../Contents/MacOS/JavaApplicationStub | 33 +++++++++++++++---- .../Contents/MacOS/JavaApplicationStub | 33 +++++++++++++++---- 3 files changed, 81 insertions(+), 18 deletions(-) diff --git a/altosui/AltosUI.app/Contents/MacOS/JavaApplicationStub b/altosui/AltosUI.app/Contents/MacOS/JavaApplicationStub index 145a260b..0c36006c 100755 --- a/altosui/AltosUI.app/Contents/MacOS/JavaApplicationStub +++ b/altosui/AltosUI.app/Contents/MacOS/JavaApplicationStub @@ -544,12 +544,32 @@ if [ -z "${JAVACMD}" ] || [ ! -x "${JAVACMD}" ] ; then # find installed JavaVirtualMachines (JDK + JRE) allJVMs=() # read JDK's from '/usr/libexec/java_home -V' command - while read -r line; do - version=$(echo $line | awk -F $',' '{print $1;}') - path=$(echo $line | awk -F $'" ' '{print $2;}') - path+="/bin/java" - allJVMs+=("$version:$path") - done < <(/usr/libexec/java_home -V 2>&1 | grep '^[[:space:]]') + case `sw_vers -productVersion` in + 10*) + # read JDK's from '/usr/libexec/java_home -V' command + while read -r line; do + version=$(echo $line | awk -F $',' '{print $1;}') + path=$(echo $line | awk -F $'" ' '{print $2;}') + path+="/bin/java" + allJVMs+=("$version:$path") + done < <(/usr/libexec/java_home -V 2>&1 | grep '^[[:space:]]') + ;; + *) + # read JDK's from java_home -X command + while read version path; do + path+="/bin/java" + allJVMs+=("$version:$path") + done < <(/usr/libexec/java_home -X | + awk '// { version = ""; path = ""; } + // { key=$1; sub(//, "", key); sub(/<\/key>/, "", key); } + // { string=$1; sub(//, "", string); sub(/<\/string>/, "", string); + if (key == "JVMHomePath") path = string; + if (key == "JVMVersion") version = string; + } + /<\/dict>/ { if (version != "" && path != "") printf("%s %s\n", version, path); }') + ;; + esac + # unset while loop variables unset version path @@ -566,6 +586,7 @@ if [ -z "${JAVACMD}" ] || [ ! -x "${JAVACMD}" ] ; then # debug output for i in "${allJVMs[@]}" do + echo "found JVM $i" stub_logger "[JavaSearch] ... found JVM: $i" done diff --git a/micropeak/MicroPeak.app/Contents/MacOS/JavaApplicationStub b/micropeak/MicroPeak.app/Contents/MacOS/JavaApplicationStub index 145a260b..0c36006c 100755 --- a/micropeak/MicroPeak.app/Contents/MacOS/JavaApplicationStub +++ b/micropeak/MicroPeak.app/Contents/MacOS/JavaApplicationStub @@ -544,12 +544,32 @@ if [ -z "${JAVACMD}" ] || [ ! -x "${JAVACMD}" ] ; then # find installed JavaVirtualMachines (JDK + JRE) allJVMs=() # read JDK's from '/usr/libexec/java_home -V' command - while read -r line; do - version=$(echo $line | awk -F $',' '{print $1;}') - path=$(echo $line | awk -F $'" ' '{print $2;}') - path+="/bin/java" - allJVMs+=("$version:$path") - done < <(/usr/libexec/java_home -V 2>&1 | grep '^[[:space:]]') + case `sw_vers -productVersion` in + 10*) + # read JDK's from '/usr/libexec/java_home -V' command + while read -r line; do + version=$(echo $line | awk -F $',' '{print $1;}') + path=$(echo $line | awk -F $'" ' '{print $2;}') + path+="/bin/java" + allJVMs+=("$version:$path") + done < <(/usr/libexec/java_home -V 2>&1 | grep '^[[:space:]]') + ;; + *) + # read JDK's from java_home -X command + while read version path; do + path+="/bin/java" + allJVMs+=("$version:$path") + done < <(/usr/libexec/java_home -X | + awk '// { version = ""; path = ""; } + // { key=$1; sub(//, "", key); sub(/<\/key>/, "", key); } + // { string=$1; sub(//, "", string); sub(/<\/string>/, "", string); + if (key == "JVMHomePath") path = string; + if (key == "JVMVersion") version = string; + } + /<\/dict>/ { if (version != "" && path != "") printf("%s %s\n", version, path); }') + ;; + esac + # unset while loop variables unset version path @@ -566,6 +586,7 @@ if [ -z "${JAVACMD}" ] || [ ! -x "${JAVACMD}" ] ; then # debug output for i in "${allJVMs[@]}" do + echo "found JVM $i" stub_logger "[JavaSearch] ... found JVM: $i" done diff --git a/telegps/TeleGPS.app/Contents/MacOS/JavaApplicationStub b/telegps/TeleGPS.app/Contents/MacOS/JavaApplicationStub index 145a260b..0c36006c 100755 --- a/telegps/TeleGPS.app/Contents/MacOS/JavaApplicationStub +++ b/telegps/TeleGPS.app/Contents/MacOS/JavaApplicationStub @@ -544,12 +544,32 @@ if [ -z "${JAVACMD}" ] || [ ! -x "${JAVACMD}" ] ; then # find installed JavaVirtualMachines (JDK + JRE) allJVMs=() # read JDK's from '/usr/libexec/java_home -V' command - while read -r line; do - version=$(echo $line | awk -F $',' '{print $1;}') - path=$(echo $line | awk -F $'" ' '{print $2;}') - path+="/bin/java" - allJVMs+=("$version:$path") - done < <(/usr/libexec/java_home -V 2>&1 | grep '^[[:space:]]') + case `sw_vers -productVersion` in + 10*) + # read JDK's from '/usr/libexec/java_home -V' command + while read -r line; do + version=$(echo $line | awk -F $',' '{print $1;}') + path=$(echo $line | awk -F $'" ' '{print $2;}') + path+="/bin/java" + allJVMs+=("$version:$path") + done < <(/usr/libexec/java_home -V 2>&1 | grep '^[[:space:]]') + ;; + *) + # read JDK's from java_home -X command + while read version path; do + path+="/bin/java" + allJVMs+=("$version:$path") + done < <(/usr/libexec/java_home -X | + awk '// { version = ""; path = ""; } + // { key=$1; sub(//, "", key); sub(/<\/key>/, "", key); } + // { string=$1; sub(//, "", string); sub(/<\/string>/, "", string); + if (key == "JVMHomePath") path = string; + if (key == "JVMVersion") version = string; + } + /<\/dict>/ { if (version != "" && path != "") printf("%s %s\n", version, path); }') + ;; + esac + # unset while loop variables unset version path @@ -566,6 +586,7 @@ if [ -z "${JAVACMD}" ] || [ ! -x "${JAVACMD}" ] ; then # debug output for i in "${allJVMs[@]}" do + echo "found JVM $i" stub_logger "[JavaSearch] ... found JVM: $i" done -- 2.30.2