Come si controlla se Java SDK è installato su un Mac?Come si verifica se Java JDK è installato su Mac?
Esiste una riga di comando per questo?
Come si controlla se Java SDK è installato su un Mac?Come si verifica se Java JDK è installato su Mac?
Esiste una riga di comando per questo?
javac -version
in un terminale farà
Ho ottenuto "javac 1.6.0_37" è equivalente a jdk 6 o 7? –
'1.6' so jdk 6. –
Tuttavia, se Java non è installato, apparirà una finestra di dialogo che dice che Java deve essere installato, quindi questa non è una buona opzione per gli script. –
Digitare in un terminale:
which javac
che dovrebbe vedere qualcosa di simile a
/usr/bin/javac
+1 per i tempi;) –
-1 per la risposta: la presenza del comando java nel percorso non testimonia che il JDK è installato (ma il JRE) –
Sigh, javac quindi ... – asgoth
Basta digitare javac
. Se è installato si ottengono le informazioni di utilizzo, altrimenti si chiederebbe solo se si desidera installare Java.
È possibile sfruttare il binario dell'helpersu OS X
per quello che stai cercando.
Per elencare tutte le versioni di JDK installato:
$ /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
Per richiedere il percorso JAVA_HOME di una specifica versione del JDK, si può fare:
$ /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
Si potrebbe trarre vantaggio i comandi precedenti in il tuo script in questo modo:
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
Potrebbe essere possibile fare if-else e controllare più diff versioni attuali di java.
Se si preferisce l'output XML, java_home ha anche un'opzione -X per l'output in XML.
$ /usr/libexec/java_home --help
Usage: java_home [options...]
Returns the path to a Java home directory from the current user's 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.
Questa dovrebbe essere la risposta accettata –
/usr/bin/java_home
strumento restituisce 1 se Java non è installato.
modo da poter verificare se Java è installato dal modo successivo:
/usr/libexec/java_home &> /dev/null && echo "installed" || echo "not installed"
Javac ......... – MadProgrammer
* "che il software non sono in esecuzione" * Qual è la produzione errore? –