Bagaimana cara mengubah nilai JAVA_HOME
di Ubuntu agar mengarah ke Oracle's Java?
Haruskah itu menunjuk ke java-6-sun
atau java-6-sun-1.6.0.24
?
Bagaimana cara mengubah nilai JAVA_HOME
di Ubuntu agar mengarah ke Oracle's Java?
Haruskah itu menunjuk ke java-6-sun
atau java-6-sun-1.6.0.24
?
Jawaban:
Saya meletakkan garis:
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
di ~/.bashrc
file saya .
/usr/lib/jvm/java7-oracle
harus berupa tautan simbolis yang menunjuk ke /usr/lib/jvm/java-7-oracle-[version number here]
.
Alasan ini adalah tautan simbolis karena jika ada versi baru JVM, Anda tidak perlu memperbarui .bashrc
file Anda , itu akan secara otomatis mengarah ke versi baru.
Jika Anda ingin mengatur JAVA_HOME
variabel lingkungan secara global dan pada tingkat sistem berarti penggunaan harus diatur dalam /etc/environment
file.
oracle-java7-set-default
paket itu.
Jika Anda ingin mengubahnya secara global dan pada tingkat sistem;
Di
/etc/environment
tambahkan baris ini:
JAVA_HOME=/usr/lib/jvm/java-7-oracle
$JAVA_HOME
tidak menyelesaikan saat digunakan seperti ini PATH=$JAVA_HOME/bin
, mencoba memulai ulang, tidak berpengaruh. Apakah saya harus export
atau set
JAVA_HOME
di file ini atau profil saya?
untuk mengatur Java SE Development Kit Oracle sebagai sistem default Java cukup unduh Java SE Development Kit terbaru dari sini kemudian buat direktori di suatu tempat yang Anda suka di sistem file Anda misalnya /usr/java
sekarang ekstrak file yang baru saja Anda unduh di direktori itu:
$ sudo tar xvzf jdk-8u5-linux-i586.tar.gz -C /usr/java
sekarang untuk menyetel JAVA_HOME
variabel lingkungan Anda :
$ JAVA_HOME=/usr/java/jdk1.8.0_05/
$ sudo update-alternatives --install /usr/bin/java java ${JAVA_HOME%*/}/bin/java 20000
$ sudo update-alternatives --install /usr/bin/javac javac ${JAVA_HOME%*/}/bin/javac 20000
pastikan java Oracle disetel sebagai java default oleh:
$ update-alternatives --config java
Anda mendapatkan sesuatu seperti ini:
There are 2 choices for the alternative java (providing /usr/bin/java).
Selection Path Priority Status
------------------------------------------------------------
* 0 /opt/java/jdk1.8.0_05/bin/java 20000 auto mode
1 /opt/java/jdk1.8.0_05/bin/java 20000 manual mode
2 /usr/lib/jvm/java-6-openjdk-i386/jre/bin/java 1061 manual mode
Press enter to keep the current choice[*], or type selection number:
perhatikan tanda bintang sebelum nomor di sebelah kiri dan jika yang benar tidak disetel pilih yang benar dengan mengetik nomornya dan tekan enter. sekarang uji java Anda:
$ java -version
jika Anda mendapatkan sesuatu seperti berikut ini, Anda dapat melakukannya:
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) Server VM (build 25.5-b02, mixed mode)
juga perhatikan bahwa Anda mungkin memerlukan izin root atau berada di grup sudoers untuk dapat melakukan ini. Saya telah menguji solusi ini di ubuntu 12.04 dan Debian wheezy dan berfungsi di keduanya.
Jika Anda ingin variabel lingkungan ini tersedia untuk semua pengguna dan saat sistem dimulai, Anda dapat menambahkan berikut ini ke /etc/profile.d/java.sh (buatlah jika perlu):
export JDK_HOME=/usr/lib/jvm/java-7-oracle
export JAVA_HOME=/usr/lib/jvm/java-7-oracle
Kemudian di jalankan terminal:
sudo chmod +x /etc/profile.d/java.sh
source /etc/profile.d/java.sh
Pertanyaan kedua saya adalah - haruskah itu menunjuk ke java-6-sun atau java-6-sun-1.6.0.24?
Itu harus selalu mengarah ke java-7-oracle
symlink itu ke yang terbaru diinstal (dengan asumsi Anda menginstal Java dari repositori Ubuntu dan sekarang dari unduhan yang tersedia di oracle.com).
java 6
export JAVA_HOME=/usr/lib/jvm/java-1.6.0-openjdk-amd64
atau java 7
export JAVA_HOME=/usr/lib/jvm/java-1.7.0-openjdk-amd64
Jika Anda melakukan pengembangan apa pun, Anda perlu mengarahkan ke JDK (Java Development Kit). Jika tidak, Anda dapat mengarahkan ke JRE (Java Runtime Environment).
JDK berisi semua yang dimiliki JRE dan banyak lagi. Jika Anda hanya menjalankan program Java, Anda dapat mengarahkan ke JRE atau JDK.
Anda harus mengatur JAVA_HOME
berdasarkan Java saat ini yang Anda gunakan.
readlink
akan mencetak nilai dari tautan simbolik untuk Java saat ini dan sed
akan menyesuaikannya ke direktori JRE:
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
Jika Anda ingin mengatur JAVA_HOME ke JDK, Anda harus membuka satu folder lagi:
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")
Jika Anda ingin menggunakan versi Java tertentu saat beberapa JDK diinstal, hanya menyetel JAVA_HOME mungkin tidak berfungsi.
Anda perlu menggunakan sudo update-alternatives --config java
untuk mengatur Java default.
Lihat ini ; Lari
sudo update-java-alternatives --list
untuk mencantumkan semua penginstalan Java pada mesin menurut nama dan direktori, lalu jalankan
sudo update-java-alternatives --set [JDK/JRE name e.g. java-8-oracle]
untuk memilih JRE / JDK yang akan digunakan.
Jika Anda ingin menggunakan JDK / JRE yang berbeda untuk setiap tugas Java, Anda dapat menjalankan update-alternatif untuk mengkonfigurasi satu java yang dapat dieksekusi pada satu waktu; kamu bisa lari
sudo update-alternatives --config java[Tab]
untuk melihat perintah Java yang dapat dikonfigurasi (java, javac, javah, javaws, dll). Lalu
sudo update-alternatives --config [javac|java|javadoc|etc.]
akan mengaitkan tugas / perintah Java itu ke JDK / JRE tertentu.
Anda mungkin juga perlu mengatur JAVA_HOME untuk beberapa aplikasi: dari jawaban ini Anda dapat menggunakan
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")
untuk JRE, atau
export JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:jre/bin/java::")
untuk JDK.
java -XshowSettings 2>&1 | grep -e 'java.home' | awk '{print "JAVA_HOME="$3}' | sed "s/\/jre//g" >> /etc/environment