Come si rileva se java è installato senza attivare un prompt visivo?

2

Sulla maggior parte dei sistemi, verrebbe eseguito solo java -version e un codice di ritorno diverso da zero indica che Java non è installato.

Si potrebbe fare ciò su OS X, ma arriva una richiesta fastidiosa per chiedere all'utente se vuole installare Java.

Questo è irritante negli script automatici.

Come si può rilevare se Java è installato su un Mac, senza ottenere il popup?

    
posta Brian M. Hunt 06.11.2014 - 20:50
fonte

2 risposte

1

Tutte le installazioni più recenti di /usr/libexec/java_home di Java che vengono utilizzate per selezionare tra più installazioni Java su una macchina. Test per la sua esistenza e l'output dal comando sono buoni modi per vedere se Java è installato senza attivare il pop-up.

if [[ -e /usr/libexec/java_home ]]; then
    JAVA_HOME=$(/usr/libexec/java_home)
else
    echo "Java not installed"
fi

Puoi anche usarlo per cercare una versione specifica di Java. Ad esempio:

|ruby-2.1.1| cortana in ~
○ → /usr/libexec/java_home -v 1.6
/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

|ruby-2.1.1| cortana in ~
○ → /usr/libexec/java_home -v 1.7
/Library/Java/JavaVirtualMachines/jdk1.7.0_51.jdk/Contents/Home

|ruby-2.1.1| cortana in ~
○ → /usr/libexec/java_home -v 1.8
/Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/Contents/Home
    
risposta data 07.11.2014 - 00:34
fonte
1

rtrouton ha alcuni grandi esempi sul suo derflounder website . Gli esempi sono usati come attributi di estensione in una suite mdm, basta rimuovere i tag dei risultati da essi. Di seguito uno script che cerca la cartella di installazione java, se esiste echo la versione se non echo non è installata. Questo in cambio non attiva mai il comando java che mantiene il pop up lontano.

if [[ -e /Library/Java/Home ]]; then
    echo "$(java -version 2>&1 | awk '/version/{print $3}' | sed 's/"//g')"
        else
    echo "Java not installed"
fi
    
risposta data 07.11.2014 - 00:29
fonte

Leggi altre domande sui tag