LinuxにインストールされているすべてのJavaバージョンを表示するコマンドは何ですか?


36

java -versionについて知っています。現在実行しているバージョンを気にしません。Linuxボックスにインストールされている他のバージョンが気になります。別のjava-*コマンドの場合、java -helpに表示されませんでした。

私はそれをグーグルで試しましたが、答えはWindows用であるか、「java -versionを使用する」と言います。私はこれを以前にやったことを知っています。

回答:


50

ほとんどのLinuxディストリビューションでは、次のupdate-alternativesように使用できます。

sudo update-alternatives --config java

javaコマンドを提供するすべてのパッケージがリストされ、変更することができます。変更したくない場合は、単にそれから変更Ctrl-Cします。

キャッチは1つだけです- java公式のパッケージマネージャー(dpkg/ apt-getrpm/ yum)を使用せずにインストールしたものを単純に抽出した場合、update-alternativesに表示されません


2
update-alternatives --list javaそれらをリストするためだけに使用しない理由はありますか?
シャオ

4
@Xiao:残念ながら、すべてのバージョンのupdate-alternativesに--listオプションがあるわけではありません。たとえば、Centos 6.7はサポートしていません。
mvp

1
RHEL 7では、-listは存在しますが、他のパラメーターは使用しないため、次のことを行う必要があります| grep java
Dmitri

4

できること:

find / -name java 

すべてのファイルを検索します。ご使用のLinuxバージョンのパッケージマネージャーもそれらを一覧表示できるはずです。


3
「パッケージマネージャー」...誰かがJavaバージョンを手動でインストールしない限り。ただし、検索は有効なアプローチです:) find / -type f -name java -print 2> / dev / null | xargs -i echo {} -version | バッシュ
ティンク

@tinkどのようにxargsでfindを使用しますが、複数の「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'
ティンク

1

セットアップの詳細に関しては、多くのことを望みます。Javaは、Linuxでさまざまな方法でインストールできます。apt、yum、yastなどのディストリビューションパッケージmaangerを使用してインストールするか、手動でインストールできます。

Javaのインストールでは、ほとんどの場合、Java実行可能ファイルが適切に機能する必要があるため、locateコマンドまたはfindコマンドを使用してさまざまなコマンドを見つけることができます。

リンクと重複を見つける可能性が最も高い例ですが、ディレクトリ名はそれを特定するのに役立つはずです。

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


1

以前は以下を使用して、デフォルトとして設定されていないJavaバージョンを使用できるように環境変数セットが必要なアプリケーションのJava 8インストールを決定していました。

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

しかし、それは今日機能しなくなりました。update-java-alternativesスクリプト/プログラムは、もはや私のUbuntu 14.04システムにインストールされていません。現在インストールされているのはalternativesです。

特定の代替Javaパスを取得するために現在使用しているのは、次のとおりです。

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

次に、結果をマッサージして、アプリの環境変数に必要なものを取得します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.