Qual è il comando per vedere tutte le versioni Java installate su Linux?


36

Conosco java -version. Non mi interessa quale versione sto attualmente eseguendo. Mi importa quali altre versioni sono installate sulla mia scatola di Linux. Se è un altro comando java - * non l'ho visto nel java -help.

Ho provato a cercarlo su Google, ma le risposte sono per Windows o dicono "usa java -version". So di averlo fatto prima.

Risposte:


50

Sulla maggior parte delle distribuzioni Linux è possibile utilizzare in update-alternativesquesto modo:

sudo update-alternatives --config java

Elencherà tutti i pacchetti che forniscono il comando java e ti permetteranno di cambiarlo. Se non vuoi cambiarlo, semplicemente Ctrl-Cda esso.

C'è solo un problema: se ne hai installato alcuni che javanon utilizzano il gestore pacchetti ufficiale ( dpkg/ apt-get, rpm/ yum), ma lo hai semplicemente estratto, le alternative di aggiornamento non lo mostreranno.


2
Qualche motivo per non usarlo update-alternatives --list javasolo per elencarli?
Xiao,

4
@Xiao: sfortunatamente, non tutte le versioni di update-alternative hanno --listun'opzione. ad es. Centos 6.7 no.
mvp,

1
In RHEL 7, --list esiste, ma non accetta altri parametri, quindi devi| grep java
Dmitri

4

Potresti fare:

find / -name java 

Per trovare tutti i file. Anche il gestore pacchetti con la tua versione di Linux dovrebbe essere in grado di elencarli.


3
"gestore pacchetti" ... A meno che qualcuno non abbia installato manualmente una versione java. Find è un approccio valido, però :) find / -type f -name java -print 2> / dev / null | xargs -i echo {} -version | bash
tink

@tink Come si usa la ricerca con xargs ma si aggiunge una riga vuota tra i risultati di ogni versione quando ci sono più eseguibili 'java'?
Lee Meador,

@LeeMeadorfind /usr -type f -name java -print 2>/dev/null | xargs -i echo {} -version | bash 2>&1 | sed ':a;N;$!ba;s/\n/\n\n/g'
tink

1

Lascia molto a desiderare per quanto riguarda i dettagli della tua configurazione. Java può essere installato in diversi modi in Linux. Puoi installarlo tramite il tuo pacchetto di distribuzione maanger, come apt, yum, yast, oppure puoi installarlo manualmente.

Qualunque sia la tua installazione, un'installazione Java ha bisogno dell'eseguibile java per fare del bene nella maggior parte dei casi, quindi puoi usare i comandi di individuazione o di ricerca per trovare quelli diversi.

Esempio che molto probabilmente troverà collegamenti e duplicati, ma i nomi delle directory dovrebbero aiutarti a individuarlo:

for f in $(locate -ber '^java$'); do test -x && echo "$f"; done


1

In precedenza utilizzavo quanto segue per determinare l'installazione di Java 8 per un'applicazione che richiedeva un set di variabili di ambiente in modo da poter utilizzare una versione Java che non era impostata come predefinita:

update-java-alternatives -l java-8-oracle

Tuttavia, oggi ha smesso di funzionare. Lo update-java-alternativesscript / programma non è più installato sul mio sistema Ubuntu 14.04. Ciò che è installato ora è alternatives.

Quello che uso ora per ottenere un percorso java alternativo specifico è:

alternatives --display java | grep priority | grep jdk-1.8

Quindi posso massaggiare il risultato per ottenere ciò di cui ho bisogno per la variabile d'ambiente della mia app.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.