Яка команда для перегляду всіх версій Java, встановлених на Linux?


36

Я знаю про java -версію. Мені все одно, в якій версії я зараз працюю . Мені байдуже, які інші версії встановлені на моїй linux box. Якщо це інша команда java - *, я не бачив її в java -help.

Я спробував googling це, але відповіді або для Windows, або вони кажуть "використовувати java -версію". Я знаю, що робив це раніше.

Відповіді:


50

У більшості дистрибутивів Linux можна використовувати update-alternativesтак:

sudo update-alternatives --config java

Він перелічить усі пакети, які надають команду java, і дозволить вам її змінити. Якщо ви не хочете його змінювати, просто Ctrl-Cз нього.

Є лише один загін - якщо ви встановили деякий, який javaне використовує офіційний менеджер пакунків ( dpkg/ apt-get, rpm/ yum), а просто витяг його, оновлення-альтернативи не відображатимуться.


2
Будь-яка причина не використовувати update-alternatives --list javaлише для їх переліку?
Сяо

4
@Xiao: на жаль, не всі версії варіантів оновлення мають --listможливість. наприклад, Centos 6.7 ні.
mvp

1
У RHEL 7 --list існує, але інших параметрів не приймає, тому вам доведеться| grep java
Дмитро

4

Ви можете зробити:

find / -name java 

Щоб знайти всі файли. Менеджер пакунків із вашою версією Linux також повинен мати можливість їх перелічити.


3
"менеджер пакунків" ... Якщо хтось не встановив версію Java вручну. Find - це правильний підхід, хоча :) find / -type f -name java -print 2> / dev / null | xargs -i echo {} -вернення | bash
tink

@tink Як можна використовувати знахідку з xargs, але додати порожній рядок між результатами кожної версії, коли є кілька виконуваних файлів "java"?
Лі Меадор

@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'
Дзинь

1

Ви залишаєте багато бажаного, наскільки детально про налаштування йде. Java може бути встановлена ​​різними способами в Linux. Ви можете встановити через свій диспетчерський пакунок, наприклад apt, yum, yast, або встановити його вручну.

Як ніколи ви її встановили, для більшості випадків для встановлення Java потрібен виконуваний Java, щоб зробити будь-яку користь, щоб ви могли використовувати команди locate або знаходити різні.

Приклад, який, швидше за все, знайде посилання та дублікати, але назви каталогів повинні допомогти вам точно визначити це:

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


1

Раніше я використовував наступне, щоб визначити установку java 8 для програми, для якої потрібен набір змінної середовища, щоб вона могла використовувати версію java, яка не була встановлена ​​за замовчуванням:

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

Однак це перестало працювати сьогодні. Чи не update-java-alternativesскрипт / програма не встановлюється в моїй системі Ubuntu 14.04. Що зараз встановлено alternatives.

Що я зараз використовую для отримання конкретних альтернативних шляхів Java:

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

Тоді я можу масажувати результат, щоб отримати те, що потрібно для змінної середовища мого додатка.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.