web-dev-qa-db-ja.com

代替を実行する時期と理由--install Java jar javac javaws on install jdk in linux

LinuxにJavaをインストールするには(CentOSを使用しましたが、RHELも同じです))、このコマンドを使用しました

rpm -Uvh /path/to/binary/jdk-7u55-linux-x64.rpm

検証済みのJava

Java -version

チュートリアルを見ると、次の4つのコマンドを実行するように指示されていますが、理由はわかりません

## Java ##
alternatives --install /usr/bin/Java java /usr/Java/latest/jre/bin/Java 200000
## javaws ##
alternatives --install /usr/bin/javaws javaws /usr/Java/latest/jre/bin/javaws 200000

## Install javac only
alternatives --install /usr/bin/javac javac /usr/Java/latest/bin/javac 200000
## jar ##
alternatives --install /usr/bin/jar jar /usr/Java/latest/bin/jar 200000

Javaがインストールされているバージョンが複数ある場合は、使用するバージョンを選択できます。

alternatives --config Java

次に、実行可能ファイルごとにalternative --installを個別に実行する理由。

私は this の質問を見ましたが、私の答えが得られません

10
Charu Khurana

LinuxにJDKをインストールすると、パッケージのタイプ、バージョン、およびディストリビューションによってインストールされます。 Linuxでのインストール場所については、次のリンクを参照してください。

Linuxプラットフォーム用のJDKインストール-バージョン8

Linuxプラットフォーム用のJDKインストール-バージョン7

JDKをインストールすると、ツールを含むbinフォルダーが環境変数PATHに追加されない場合があります。端末で入力するコマンドは、PATH変数で指定された場所からのものである必要があります。 JDK\binが追加されない場合、ユーザーは JDKソフトウェアのインストール で説明されているように手動で構成する必要があります。

alternativesコマンドは、シンボリックリンクを作成するために使用されています。ここでは、コマンドを使用して、デフォルトでjavac変数に存在するjavawPATHなどのツールを/usr/binに追加するように指示されています。

If(Java -versionの外でJDK/binを実行できます&&完全なパス&&を指定するのではなく、バージョンとバンドルがインストールしたパッケージのバージョンと同じになるように出力されます){alternativesコマンドを実行する必要はありません。}

7
James Jithin

Javajavawsjavac、およびjarはすべて、JDKで使用されるさまざまな実行可能ファイルです。 alternatives --config Javaを実行すると、実行するJava実行可能ファイルのバージョンのみが構成されます。ただし、JDKには、たとえばjavacコンパイラが含まれています。使用するコンパイラのバージョンも構成する必要があります。

alternatives コマンドは、一言で言えば、シンボリック(またはsym)リンクのルックアップを維持するために使用されます。 --configureオプションを使用して実行するJavaのバージョンを選択する前に、まず--installオプションを使用して実行可能ファイルへの実際のパスを登録する必要があります。 alternatives --installはソフトウェアをインストールしていません。 alternativesフレームワークにいくつかのパスとエイリアスを登録するだけです。 (注:alternativesaliasコマンドを使用していません。つまり、従来の文字通りの意味での「エイリアス」を意味します。)

また、rpmコマンドの機能についても理解する必要があります。実際には、バイナリのセットを特定のディレクトリにドロップダウンするだけです。このディレクトリは、/some/path/to/lib/jvm/Java-1.x.x-etc-etc-x86/jre/bin/Javaを明示的に指定するのに長くて面倒な場合があります。 Javaを実行するたびにこれを指定する必要はありません。代わりに、いくつかのシンボリックリンクを設定します。

PATHLinuxで動作する についても読むことをお勧めします。

マシンのセットアップをトレースしてみると、より明確になる場合があります。これが私が実行したものです:

> which Java
/usr/bin/Java
> ls -l /usr/bin/Java
lrwxrwxrwx 1 root root 22 Aug 14  2014 /usr/bin/Java -> /etc/alternatives/Java
> ls -l /etc/alternatives/Java
lrwxrwxrwx 1 root root 73 Aug 14  2014 /etc/alternatives/Java -> /usr/lib/jvm/Java-1.7.0-openjdk-1.7.0.65-2.5.1.2.fc19.x86_64/jre/bin/Java
4
djs

OSのデフォルトとしてJava JRE/JDKの異なるバージョンを取得するには:

Sudo alternatives --install /usr/bin/Java java [path_to_Java_bin] 1 

私の場合の例は次のとおりです。

Sudo alternatives --install /usr/bin/Java java /usr/Java/jdk1.7.0_80/bin/Java 1 

次に、構成を実行して、代替のJavaバージョン:

 Sudo /usr/sbin/alternatives --config Java

1,2またはご希望のオプションを選択してください

次に、次の手順で変更を確認します。

Java -version
0
jmojico

これらの「代替」スクリプトおよび同様のツールは、目的のJDKバージョンのバイナリをそれらが期待されるディレクトリにシンボリックリンクするだけです。これは、コマンドラインで使用できるはずのすべてのコマンドに対して実行されます。

「すべて」の定義は、ディストリビューションによって異なります。

0
Rostislav Matl

Ubuntuの場合はupdate-alternatives

0