OS:UBUNTU 18.04
私はOracleをインストールしましたJava 8以前。ただし、JDK 11を開くように切り替えることにしました。正常にインストールされました。Java -version
openjdkバージョン "11.0.2" 2019-01-15 OpenJDKランタイム環境(ビルド11.0.2 + 9-Ubuntu-3ubuntu118.04.3)OpenJDK 64ビットサーバーVM(ビルド11.0.2 + 9-Ubuntu-3ubuntu118.04.3、混合モード、共有)
次に、Java_HOMESudo nano/etc/environmentを設定します。ファイルの変更:PATH = "/ usr/local/sbin:/ usr/local/bin:/ usr/sbin:/ usr/bin:/ sbin:/ bin:/ usr/games:/ $ Java_HOME = "/ usr/lib/jvm/Java-11-openjdk-AMD64 /"
次に実行されます:ソース/ etc/environment
echo $ Java_HOME
/usr/lib/jvm/Java-11-openjdk-AMD64 /
しかし、端末を終了して端末をもう一度起動した瞬間:この出力が表示されます:
▶echo $ Java_HOME/usr/lib/jvm/Java-8-Oracle
あなたが見ることができるものは期待されたものではありません。私を助けてください
回答といくつかのコメントはJava_HOME
をバージョン11に設定する方法に焦点を当てていますが、問題は部分的には「バージョン8はどこに設定されるのか?」についてです。これに答えるには:
次のコマンドを使用します。
$ Sudo grep -rnw --exclude-dir={boot,dev,lib,media,mnt,proc,root,run,sys,/tmp,tmpfs,var} '/' -e '/usr/lib/jvm/Java-8-Oracle' | grep Java_HOME
/etc/profile.d/jdk.sh:4:export Java_HOME=/usr/lib/jvm/Java-8-Oracle
/etc/profile.d/jdk.csh:4:setenv Java_HOME /usr/lib/jvm/Java-8-Oracle
/home/rick/.gradle/daemon/4.6/daemon-14831.out.log:53:20:45:23.553 [DEBUG] (... SNIP ...) /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/Java-8-Oracle/bin:/usr/lib/jvm/Java-8-Oracle/db/bin:/usr/lib/jvm/Java-8-Oracle/jre/bin (... SNIP ...) Configuring env variables: {PATH=/home/rick/bin:/home/rick/.local/bin:/mnt/e/bin:/mnt/e/usr/local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/lib/jvm/Java-8-Oracle/bin:/usr/lib/jvm/Java-8-Oracle/db/bin:/usr/lib/jvm/Java-8-Oracle/jre/bin, (... SNIP ...)
これは私のシステムが返すものです。あなたのものはおそらく異なるでしょう。長い話を短くすると、犯人は/etc/profile.d/jdk.sh
です。
$ cat /etc/profile.d/jdk.sh
setenv J2SDKDIR /usr/lib/jvm/Java-8-Oracle
setenv J2REDIR /usr/lib/jvm/Java-8-Oracle/jre
setenv PATH ${PATH}:/usr/lib/jvm/Java-8-Oracle/bin:/usr/lib/jvm/Java-8-Oracle/db/bin:/usr/lib/jvm/Java-8-Oracle/jre/bin
setenv Java_HOME /usr/lib/jvm/Java-8-Oracle
setenv DERBY_HOME /usr/lib/jvm/Java-8-Oracle/db
おそらく/etc/profile.d/jdk.csh
も変更する必要があると思います。実際、/etc/profile.d/jdk.sh
とまったく同じ内容が含まれています
ファイルを1行ずつ調べて8
を11
に変更するよりも良い方法があります。
最も簡単な方法は、Javaインストーラーを使用することです。これからAsk Ubuntu Q&A: JDK 7をデフォルトとして設定)
インストールされているJavaプラットフォームのリストを取得するには、ターミナルから次のコマンドを実行します。
Sudo update-alternatives --config Java
これにより、次のようなリスト出力が得られます。
There are 2 choices for the alternative Java (providing /usr/bin/Java).
Selection Path Priority Status
------------------------------------------------------------
0 /usr/lib/jvm/Java-6-Oracle/jre/bin/Java 1070 auto mode
1 /usr/lib/jvm/Java-7-openjdk-i386/jre/bin/Java 1051 manual mode
* 2 /usr/lib/jvm/Java-6-openjdk-i386/jre/bin/Java 1069 manual mode
Press enter to keep the current choice[*], or type selection number:
リンクでこれらの回答を読んでみてください。彼らは、環境変数の変更を永続化することに関するものです。ターミナルを閉じた後に何が起こっているかは、元に戻っていると思います。ここにリンクがあります: 環境変数の変更を持続させる
これを設定する最も簡単な場所は.bashrcにあり、次のようにすばやく実行できます。
echo Java_HOME=/usr/lib/jvm/Java-11-openjdk-AMD64/ >> .bashrc
これにより、bashの初期化時に最後の行が読み取られ、Java_HOMEが正しく設定されていることを確認できます。もっと複雑なことをする必要がある場合は、ターミナルの初期化方法について少し読んでください。 google-ing bashrcから始めることをお勧めします。