web-dev-qa-db-ja.com

update-Java-alternativesとupdate-alternatives --config java

Ubuntu 12.04 LTSには、SunのJDK7、Eclipse、およびArduino IDEをインストールしました。 ArduinoでOpenJDK 6を使用し、EclipseでSunのJDK 7を使用するようにします。

私の理解では、各アプリケーションを実行する前に、使用するJavaを手動で選択する必要があります。これは私をupdate-Java-alternatives -lコマンドに導きました。これを実行すると、次のものしか表示されません。

Java-1.6.0-openjdk-AMD64 1061 /usr/lib/jvm/Java-1.6.0-openjdk-AMD64

しかし、update-alternatives --config Javaを実行すると、次のように表示されます。

*0  /usr/lib/jvm/Java-6-openjdk-AMD64/jre/bin/Java   auto mode
1  /usr/lib/jvm/Java-6-openjdk-AMD64/jre/bin/Java   manual mode
2  /usr/lib/jvm/jdk1.7.0/bin/Java                   manual mode
3  /usr/lib/jvm/jre1.7.0/bin/Java                   manual mode

update-Java-alternativesに同じ3つのオプションが表示されない理由がわかりません。 OpenJDK6とJDK7を切り替える方法もわかりません。 Arduino開発にはOpenJDK6を、Eclipse/Android開発にはSun JDK7を使用するにはどうすればよいですか?

92
Stan Smith

Sudo update-alternatives --config Java

プログラム「Java」のデフォルトを構成します。それがJava VMです。

Sudo update-alternatives --config javac

デフォルトのJavaコンパイラを構成します。

また、最初のコマンドが多くの「JRE」(Javaランタイム環境)フォルダーをリストし、プログラムが単に「Java」と呼ばれるため、それを見ることができます。

コマンドJava -versionまたはjavac -versionを発行して、使用されているバージョンを確認すると、各コマンドが使用されているプログラムを変更していることがわかります。

ただし、JDKバージョンでupdate-Java-alternativesを使用すると、bothプログラムが変更されます。最初のコマンドを使用すると、異なるJDKのJava VMおよびJavaコンパイラーを使用できます。

update-Java-alternativesでは、ディレクトリ/ usr/lib/jvmに拡張子.jinfoのファイルが存在する必要があります。 opendjkパッケージには.jinfoファイルが同梱されていますが、Oracle(以前のSun)のjdkは同梱されていません。代替として、update-Java-alternativesなしで代替を構成します:

たとえば、jvm-directory /usr/lib/jvm/jdk-12.0.1からJavaを追加するには( OracleのDebianパッケージのデフォルトディレクトリ )、優先度2082を使用します次のコマンド:

Sudo update-alternatives --install /usr/bin/Java java /usr/lib/jvm/jdk-12.0.1/bin/Java 2082

異なる開発環境への切り替えに関して:

IDE自体を異なるJavaバージョンで起動することについて話しているのですか、異なるバージョンを使用するinIDEアプリをコンパイルして実行しますか?

1.の場合: here の説明に従って、Eclipse.iniで使用するJVMを指定できます。 Arduino IDEでこれを行う方法がわかりません。

2.の場合:Eclipseでは、[ウィンドウ]-> [設定]-> Java->インストール済みJREで使用するJRE/JDKを選択できます。 Java-> Compilerでは、必要に応じて古いJavaコンプライアンスを選択できます。

編集: このDigitalOceanページ には、UbuntuのJavaに関連するすべての非常に素晴らしい説明もあります。

122
Benjamin Maurer

update-Java-alternativesは、jre/jdkインストールの代替を更新するプログラムです。

update-alternativesは、Linux用のシンボリックリンク管理システムです(ここにはほとんどニュースがないと思います)。

update-Java-alternativesupdate-alternativesの両方を一緒に使用することができ、実際に使用する必要があります。

まず、すべての選択肢を正しく設定してください。 Javaとjavacはほんの一部です。 javadocrmicserialverなどがあり、上記の変数をnative2asciiおよび/opt/jdk1.8.0_40/bin/native2asciiに置き換えます。

すべての選択肢を設定したら、/usr/lib/jvmに手動インストールへのリンクを作成できます。

update-Java-alternativesを設定するには、ディレクトリと同じ名前で、先頭に。が付いた隠しファイルを使用する必要があります。 (ドット)。

お役に立てれば。

書誌

man -S 8 update-Java-alternatives

http://tech.lanesnotes.com/2008/03/using-alternatives-in-linux-to-use.html

https://stackoverflow.com/questions/6477415/how-to-set-oracles-Java-as-the-default-Java-in-ubunt

14
fmmarques