Как вы проверяете, установлен ли Java SDK на Mac?
Есть ли для этого командная строка?
Как вы проверяете, установлен ли Java SDK на Mac?
Есть ли для этого командная строка?
javac -version
в терминале будет
Вы можете использовать java_home
вспомогательный двоичный файл OS X
для того, что вы ищете.
Чтобы просмотреть все версии установленного JDK:
$ /usr/libexec/java_home -V
Matching Java Virtual Machines (2):
1.8.0_51, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home
1.7.0_79, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
Чтобы запросить путь JAVA_HOME для конкретной версии JDK, вы можете сделать:
$ /usr/libexec/java_home -v 1.7
/Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
$ /usr/libexec/java_home -v 1.8
/Library/Java/JavaVirtualMachines/jdk1.8.0_51.jdk/Contents/Home
Вы можете использовать приведенные выше команды в своем script следующим образом:
REQUESTED_JAVA_VERSION="1.7"
if POSSIBLE_JAVA_HOME="$(/usr/libexec/java_home -v $REQUESTED_JAVA_VERSION 2>/dev/null)"; then
# Do this if you want to export JAVA_HOME
export JAVA_HOME="$POSSIBLE_JAVA_HOME"
echo "Java SDK is installed"
else
echo "Did not find any installed JDK for version $REQUESTED_JAVA_VERSION"
fi
Возможно, вы сможете сделать if-else и проверить несколько разных версий java.
Если вы предпочитаете вывод XML, у java_home также есть опция -X для вывода в XML.
$ /usr/libexec/java_home --help
Usage: java_home [options...]
Returns the path to a Java home directory from the current user settings.
Options:
[-v/--version <version>] Filter Java versions in the "JVMVersion" form 1.X(+ or *).
[-a/--arch <architecture>] Filter JVMs matching architecture (i386, x86_64, etc).
[-d/--datamodel <datamodel>] Filter JVMs capable of -d32 or -d64
[-t/--task <task>] Use the JVM list for a specific task (Applets, WebStart, BundledApp, JNI, or CommandLine)
[-F/--failfast] Fail when filters return no JVMs, do not continue with default.
[ --exec <command> ...] Execute the $JAVA_HOME/bin/<command> with the remaining arguments.
[-R/--request] Request installation of a Java Runtime if not installed.
[-X/--xml] Print full JVM list and additional data as XML plist.
[-V/--verbose] Print full JVM list with architectures.
[-h/--help] This usage information.
Введите терминал:
which javac
Он должен показать вам что-то вроде
/usr/bin/javac
Просто введите javac
. Если он установлен, вы получаете информацию об использовании, иначе просто спросите, хотите ли вы установить Java.
/usr/bin/java_home
инструмент возвращает 1, если java не установлен.
Итак, вы можете проверить, установлена ли java следующим образом:
/usr/libexec/java_home &> /dev/null && echo "installed" || echo "not installed"