Apa perintah untuk melihat semua versi java terinstal di linux?

36

Saya tahu tentang java-versi. Saya tidak peduli versi apa yang saya sedang berjalan. Saya peduli versi apa yang diinstal pada kotak linux saya. Jika ini perintah java - * yang lain, saya tidak melihatnya di java -help.

Saya sudah mencoba googling tetapi jawabannya adalah untuk Windows atau mereka mengatakan "gunakan java-versi." Saya tahu saya pernah melakukan ini sebelumnya.

wheaties
sumber

Jawaban:

50

Pada sebagian besar distribusi Linux Anda dapat menggunakan update-alternativesseperti ini:

sudo update-alternatives --config java

Ini akan mencantumkan semua paket yang menyediakan perintah java dan akan membiarkan Anda mengubahnya. Jika Anda tidak ingin mengubahnya, cukup Ctrl-Cdari sana.

Hanya ada satu tangkapan - jika Anda menginstal beberapa javatidak menggunakan manajer paket resmi ( dpkg/ apt-get, rpm/ yum), tetapi cukup mengekstraknya, pembaruan-alternatif tidak akan menunjukkannya.

mvp
sumber
2
Adakah alasan untuk tidak menggunakan update-alternatives --list javahanya untuk mendaftar saja?
Xiao
4
@Xiao: sayangnya, tidak semua versi pembaruan-alternatif memiliki --listopsi. misal Centos 6.7 tidak.
mvp
1
Di RHEL 7, --list ada, tetapi tidak mengambil parameter lain, jadi Anda harus| grep java
Dmitri
4

Anda bisa melakukannya:

find / -name java 

Untuk menemukan semua file. Pengelola paket dengan versi Linux Anda juga harus dapat mencantumkannya.

Brad Patton
sumber
3
"package manager" ... Kecuali seseorang menginstal versi java secara manual. Find adalah pendekatan yang valid, :) :) find / -type f -name java -print 2> / dev / null | xargs -i echo {} -versi | bash
tink
@tink Bagaimana orang menggunakan find dengan xargs tetapi menambahkan baris kosong di antara setiap hasil versi ketika ada beberapa executable '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

Anda meninggalkan banyak hal yang diinginkan sejauh detail tentang pengaturan Anda berjalan. Java dapat diinstal dengan berbagai cara di linux. Anda dapat menginstal melalui paket distribusi Anda, seperti apt, yum, yast, atau Anda dapat menginstalnya secara manual.

Bagaimana pun Anda menginstalnya, instalasi Java memerlukan java executable untuk melakukan kebaikan dalam banyak kasus, sehingga Anda dapat menggunakan perintah cari atau temukan untuk menemukan yang berbeda.

Contoh yang kemungkinan besar akan menemukan tautan dan duplikat, tetapi nama direktori akan membantu Anda menunjukkannya:

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

Saya menggunakan ini untuk daftar instalasi Java yang tersedia:

sudo update-alternatives --display java
Jaime C Vega
sumber
bash: update-alternatives: command not found?
Jimmy Obonyo Abor
1

Saya sebelumnya menggunakan yang berikut ini untuk menentukan instalasi java 8 untuk aplikasi yang memerlukan set variabel lingkungan sehingga bisa menggunakan versi java yang tidak ditetapkan sebagai default:

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

Namun, itu berhenti bekerja hari ini. The update-java-alternativesscript / program tidak lagi diinstal pada saya sistem Ubuntu 14.04. Yang terpasang sekarang adalah alternatives.

Apa yang saya gunakan sekarang untuk mendapatkan alternatif spesifik jalur java adalah:

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

Lalu saya bisa memijat hasilnya untuk mendapatkan apa yang saya butuhkan untuk variabel lingkungan aplikasi saya.

MorganGalpin
sumber