Ubuntu 14.04にAndroid Studioをインストールしているときに、Javaバージョン(javac 1.7.0_79
)が問題を引き起こしているというメッセージが表示されます。 Javaの新しいOracleバージョンをインストールする方法の ソリューション を見つけました。
Sudo apt-add-repository ppa:webupd8team/Java
Sudo apt-get update
Sudo apt-get install Oracle-Java8-installer
ただし、既存のopen-jdk
バージョンのJavaが上書きされるのではないかと心配しています。どのプログラムがJavaに依存しているかわからないので、これらのプログラムがクラッシュするのではないかと心配しています。
apt-get
が以前のJavaを上書きしないようにする方法はありますか?基本的に両方をインストールし、必要なバージョンに応じて手動で切り替えられるようにしたいと思います。
Apt-getは、既存のJavaバージョンを上書きしません。
インストール済みのJavaバージョンを切り替えるには、update-Java-alternatives
コマンドを使用します。
すべてのJavaバージョンをリストします。
update-Java-alternatives --list
Javaバージョンをデフォルトとして設定します(ルート権限が必要):
Sudo update-Java-alternatives --set /path/to/Java/version
...ここで、/path/to/Java/version
は、前のコマンドでリストされたものの1つです(例:/usr/lib/jvm/Java-7-openjdk-AMD64
)。
update-Java-alternatives
は、Debianの 代替システム (update-alternatives
)を使用して、指定されたJavaバージョン(たとえば、Java
、javac
、...)。
つかいます
Sudo update-alternatives --config Java
現在アクティブなバージョンがマークされているすべてのインストール済みバージョンをリストし、切り替えるためのダイアログを提供します。
There are 3 choices for the alternative Java (providing /usr/bin/Java).
Selection Path...
------------------------------------------------------------
0 /usr/lib/jvm/Java-9-Oracle/bin/Java...
* 1 /usr/lib/jvm/Java-7-Oracle/jre/bin/Java...
2 /usr/lib/jvm/Java-8-Oracle/jre/bin/Java...
3 /usr/lib/jvm/Java-9-Oracle/bin/Java...
Press <enter> to keep...[*], or type selection number:
つかいます
export Java_HOME="$(jrunscript -e 'Java.lang.System.out.println(Java.lang.System.getProperty("Java.home"));')"
現在のアクティブバージョンから$Java_HOME
を設定するには
@muetからの回答に基づいて、私はこれがシームレスに動作することがわかりました:
これを~/.bashrc
に追加します:
export Java_HOME="$(jrunscript -e 'Java.lang.System.out.println(Java.lang.System.getProperty("Java.home"));')"
エイリアスに追加:
alias useJava8='yes | Sudo apt-get install Oracle-Java8-set-default && source ~/.bashrc'
alias useJava7='yes | Sudo apt-get install Oracle-Java7-set-default && source ~/.bashrc'
次に、useJava7
or useJava8
のみを使用して同じシェル内で切り替えることができます
update-alternatives
を使用して、コマンドラインで使用するデフォルトのバージョンを構成できます。これは、さまざまなコマンドに使用されるシンボリックリンクを管理します。
Sudo update-alternatives --config Java
出力は次のようになります。
There are 5 choices for the alternative Java (providing /usr/bin/Java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /usr/lib/jvm/Java-8-openjdk-AMD64/jre/bin/Java 1081 auto mode
1 /usr/lib/jvm/Java-6-Oracle/jre/bin/Java 1 manual mode
2 /usr/lib/jvm/Java-7-Oracle/jre/bin/Java 2 manual mode
3 /usr/lib/jvm/Java-8-openjdk-AMD64/jre/bin/Java 1081 manual mode
4 /usr/lib/jvm/Java-8-Oracle/jre/bin/Java 3 manual mode
5 /usr/lib/jvm/Java-9-Oracle/bin/Java 4 manual mode
Press <enter> to keep the current choice[*], or type selection number:
これで、デフォルトとして使用する番号を選択できます。これは、コンパイラ(javac
)、ドキュメントジェネレーター(javadoc
)、JAR署名ツール(jarsigner
)など、他のJavaコマンドでも実行できます。 、 もっと。次のコマンドを使用して、カスタマイズするcommandを入力できます。
Sudo update-alternatives --config command
Java_HOME
環境変数の設定Javaサーバーなどの多くのプログラムは、Java_HOME環境変数を使用してJavaインストール場所を決定します。
任意のインストールからパスをコピーしてから、Sublime Textまたはお気に入りのテキストエディターを使用して/ etc/environmentを開きます。
Sudo subl /etc/environment
このファイルの最後に次の行を追加し、強調表示されたパスをコピーした独自のパスに置き換えてください。
Java_HOME="/usr/lib/jvm/Java-8-Oracle"
ファイルを保存して終了し、リロードします:source /etc/environment
。
次のコマンドを実行して、環境変数が設定されているかどうかをテストできます:echo $Java_HOME
。これにより、設定したパスが返されます。