Pertanyaan Bagaimana cara menentukan JAVA_HOME di Debian / Ubuntu?


Di Ubuntu adalah mungkin untuk memiliki beberapa JVM pada waktu yang bersamaan. Yang default dipilih dengan update-alternatives. Tetapi ini tidak mengatur JAVA_HOME variabel lingkungan, karena a kebijakan debian.

Saya menulis skrip peluncur (bash), yang memulai aplikasi java. Aplikasi java ini membutuhkan JAVA_HOME variabel lingkungan. Jadi bagaimana cara mendapatkan jalur JVM yang saat ini dipilih oleh update-alternatives?


90
2018-05-20 15:09






Jawaban:


Untuk JRE, hal seperti ini harus melakukan trik:

JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

133
2018-05-20 17:55



Saya membutuhkan rumah JDK bukan JRE, tetapi saya menggunakan ini: JAVA_HOME = $ (readlink -f / usr / bin / javac | sed "s: bin / javac ::") Terima kasih! - Witek
ketika saya mencoba perintah echo $(readlink -f /usr/bin/java | sed "s:bin/java::"), hasilnya adalah /usr/lib/jvm/java-7-oracle/jre/ dan tidak /usr/lib/jvm/java-7-oracle/ - Sumit Ramteke
Kode diberikan dalam rsaddey berfungsi dengan benar - Sumit Ramteke


Solusi danadam dapat dengan mudah diadopsi untuk mengambil jalur JDK (yaitu tidak JRE) seperti yang diperlukan:

JAVA_HOME=$(readlink -f /usr/bin/javac | sed "s:/bin/javac::")
  • Mencari Java compiler javac (bukan java) termasuk dalam JDK (tapi tidak JRE).
  • Tidak memiliki trailing / (dilucuti oleh sed s: / bin ... bukannya s: bin ...)

43
2018-06-02 08:44





export JAVA_HOME=$(dirname $(dirname $(readlink -f /usr/bin/java)))

Di .bashrc berguna bagi saya.


12
2018-04-25 09:34





Jadi, Anda mengatakan bahwa perintah ini tidak bermanfaat bagi Anda?

sudo update-alternatives --config java 

9
2018-05-20 15:14



Apakah itu seharusnya mengatur JAVA_HOME Anda? Saya telah menemukan bahwa pembaruan-java-alternatif adalah cara yang lebih baik untuk memperbarui Java karena pembaruan-alternatif tidak memperbarui semua alternatif terkait Java. Lihat askubuntu.com/questions/141791 - James McMahon
Benar, tetapi saya telah menemukan contoh-contoh Linux yang memiliki pembaruan-alternatif tetapi tidak memiliki pembaruan-java-alternatif yang diinstal. - djangofan


Saya menginstal java dengan

sudo apt-get install openjdk-7-jre-headless

dan kemudian menemukan lokasinya

ls -al /etc/alternatives/java

3
2018-03-05 03:40





Sebagai perpanjangan jawaban danadams:

Pertama-tama, instal Java JRE ke-2 sebagai opsi java ke-3, dengan prioritas "3":

sudo alternatives --install /usr/lib/jvm/jre jre /opt/IBM/java/jre/bin/java 3

Kemudian, Anda dapat mendaftarkannya:

update-alternatives --list java

Anda dapat mengatur alternatif dengan tangan, menggunakan ini:

sudo alternatives --config java /opt/IBM/java/jre/bin/java

Kemudian, skrip Anda dapat mengaturnya dengan cepat, seperti:

sudo alternatives --set java /opt/IBM/java/jre/bin/java
JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")

Ini lebih baik menggambarkan apa yang dilakukan perintah 'sed'. Meskipun Anda masih perlu mengatur tautan untuk javaw dan javac, dll, juga, masing-masing dilakukan secara terpisah.


2
2018-03-02 16:40





Beberapa waktu yang lalu saya membuat tutorial di forum Ubuntu tentang cara menginstal JRE / JDK terbaru dari situs web Java. Ini juga mencakup tentang cara mengaktifkannya di seluruh sistem, dengan menambahkan lokasi JRE / JDK ke variabel PATH. Jika Anda suka, Anda juga dapat menambahkan JAVA_HOME ke skrip, yang disebutkan di akhir topik.

Coba lihat: http://ubuntuforums.org/showthread.php?t=1437100


1
2018-05-20 18:47