7

私は最近Fedora16(fedora 12から)にアップグレードし、単純なシンボリックリンクを使用して別のJDKを設定し、そのシンボリックリンクに$ PATHを設定する代わりに、代替ツールを使用する必要があることを読みました。

私が理解していないのは、実行する必要があると思われる場合に、jdkを管理するためにalternativesがどのように優れているかです。alternatives--config for'java'だけでなく、すべてのサポートツール(javac、javaws、jstackなど) 。これは、以下と比較して悲惨なようです。

($ PATH = / opt / local / java / current / bin:...と仮定します)

rm /opt/local/java/current
ln -s /path/to/unpacked/jdkX /opt/local/java/current

だから私の質問は:

JDKを完全に切り替えるのがはるかに面倒だと思われるのに、新しいバージョンのFedoraでJavaツールを管理する適切な方法が代替手段であると聞くのはなぜですか?情報が不十分だと言われたばかりですか、それとも代替案について重要な何かが欠けていますか?

(注:何らかの方法で代替案が明らかに優れている場合は、残忍な態度をとってください。私はこのツールについてほとんど知らないことを認識しています)

4

3 に答える 3

3

全般的

1つまたは2つのツール(例:javaとjavac)を交換する必要があることがわかっている場合は、アプリケーションのバージョンを管理するための意図された方法であるため、代替手段が最適な方法のように思われます。

ただし、JAVA_HOMEまたはJDK_HOME値の設定が必要な複数の開発ツールを使用している場合、またはツールが呼び出す可能性のあるjdkユーティリティがわからない場合は、jdkパスを$JAVA_HOMEにエクスポートしているようです。 $ PATHの前に付けるのが、より簡単な方法です。これは「正しい」方法ではないかもしれませんが、Javaバージョンをすばやく切り替えることができ、すべてのjdkユーティリティが同じバージョンを指すことがわかっているため、より透過的です。

  1. 新しいjdkを通常のJavaの場所(/opt/local/java/jdk_1.X_XX)に解凍します
  2. 現在のjdkをシンボリックリンクします

    ln -s /opt/local/java/jdk_1.X_XX current
    
  3. 〜/ .bash_profileまたは〜/.bashrcに追加

    JAVA_HOME=/opt/local/java/current
    export JAVA_HOME
    JDK_HOME=$JAVA_HOME
    export JDK_HOME
    
    PATH=$JAVA_HOME/bin:$PATH
    export PATH
    
  4. これで、jdkを切り替える必要がある場合は、シンボリックリンクを交換するだけです。

    rm /opt/local/java/current
    ln -s /opt/local/java/new_jdk_directory current
    

Ubuntu固有

UBUNTUでは、この問題はupdate-java-alternativesで解決されているようです。これにより、特定のランタイムまたは開発キット(JRE / JDK)のすべての選択肢が更新されます。

于 2012-06-11T13:27:58.640 に答える
1

Alternativeは、jdkを管理するための優れた簡単で効率的な方法です。必要に応じて、必要なバージョンにすばやく切り替えることができます。代替案が難しい場合は、このページをご覧になることをお勧めします。このページでは、代替案を優れた方法で説明しています。

于 2012-05-11T21:04:07.350 に答える
0

代替システムでは、1つのコマンドを使用して、に何かを追加することなく、これらすべてのコマンドのシンボリックリンクを一度に管理できます$PATH$PATHまた、バージョンごとにシンボリックリンクが必要なものが登録されるため、シンボリックリンクが必要なもの(含まないものを含む。JDKにはコマンドのみが含まれるわけではありません)のリストの変更も処理されます。

于 2012-05-11T14:49:29.630 に答える