Banyak aplikasi Java yang menggunakan skrip shell untuk mengonfigurasi lingkungannya menggunakan JAVA_HOME
variabel lingkungan untuk memulai versi Java yang benar, mencari JRE JAR, dan sebagainya.
Di macOS X 10.6, jalur berikut ini tampaknya valid untuk variabel ini
/Library/Java/Home
/System/Library/Frameworks/JavaVM.framework/Home
/System/Library/Frameworks/JavaVM.framework/Versions/Current
Beberapa di antaranya adalah symlink ke VM aktual saat ini (sebagaimana didefinisikan dalam panel Preferensi Java).
Tetapi yang mana yang harus digunakan — atau bolehkah menggunakannya?
java
macos
configuration
Robert Christie
sumber
sumber
Jawaban:
Saya hanya mengatur
JAVA_HOME
ke output dari perintah itu, yang akan memberi Anda path Java yang ditentukan dalam preferensi Java Anda. Berikut cuplikan dari.bashrc
file saya , yang menetapkan variabel ini:Saya belum mengalami masalah dengan teknik itu.
Kadang-kadang saya harus mengubah nilai
JAVA_HOME
ke versi Java yang lebih lama. Sebagai contoh, satu program yang saya pertahankan membutuhkan Java 5-bit pada OS X, jadi ketika menggunakan program itu, saya aturJAVA_HOME
dengan menjalankan:Bagi Anda yang tidak memiliki
java_home
jalur Anda tambahkan seperti ini.Referensi :
Oracle menjelaskan perintah java_home
Artikel untuk mengonfigurasi JDK di Spring Tool Suite (Eclipse 2019) di MacOS
sumber
Juga, sangat menarik untuk mengatur PATH Anda untuk mencerminkan JDK. Setelah menambahkan JAVA_HOME (yang dapat dilakukan dengan contoh yang dikutip oleh 'mipadi'):
export JAVA_HOME=$(/usr/libexec/java_home)
Tambahkan juga di ~ / .profile:
export PATH=${JAVA_HOME}/bin:$PATH
PS: Untuk OSX, saya biasanya menggunakan. Profil di direktori HOME daripada .bashrc
sumber
.bash_profile
- mengapa Anda menggunakan generik.profile
?.profile
generik, ia akan bekerja dengansh
ataubash
, sementara.bash_profile
eksklusif untukbash
. Ini juga mengisolasi pengaturan dari aplikasi yang menggunakan.bash_profile
, sepertiMacPorts
. Tapi Anda bisa menggunakan salah satu dari keduanya dengan aman. Lihat lebih lanjut di sini.bash_profile
penggantian.profile
..bash_profile
spesifik, sedangkan.profile
generik, untuk semuash
variasi.java
dalam Anda,/usr/bin
seharusnya tidak ada kebutuhan untuk menambahkan secara eksplisit$JAVA_HOME
ke jalur Anda.Saya memiliki MAC OS X (Sierra) 10.12.2 .
Saya mengatur JAVA_HOME untuk bekerja pada Bereaksi Asli (untuk aplikasi Android) dengan mengikuti langkah-langkah berikut.
Buka Terminal (Perintah + R, ketik Terminal, Tekan ENTER).
Tambahkan baris berikut ke ~ / .bash_profile .
export JAVA_HOME=$(/usr/libexec/java_home)
Sekarang jalankan perintah berikut.
source ~/.bash_profile
Anda dapat memeriksa nilai tepat JAVA_HOME dengan mengetik perintah berikut.
echo $JAVA_HOME
Nilai (output) yang dikembalikan akan seperti di bawah ini.
/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
Itu dia.
sumber
$JAVA_HOME
merujuk$(/usr/libexec/java_home)
dan$(/usr/libexec/java_home)
secara internal disebut/Library/Java/JavaVirtualMachines/jdk1.8.0_131.jdk/Contents/Home
oleh Sistem.Saya menggunakan Mac OS 10.6.8
Solusi termudah bagi saya adalah sederhananya
Untuk menguji apakah itu berfungsi, masukkan
itu menunjukkan
Anda juga dapat menguji
sumber
Saat ini Java tampaknya sudah diinstal pada Windows
/Library/Java/JavaVirtualMachines
sumber
Saya cenderung menggunakan
/Library/Java/Home
. Cara panel preferensi bekerja ini harus up to date dengan versi pilihan Anda.sumber
Bahwa di atas tidak berfungsi lagi di YOSEMITE untuk APLIKASI GRAFIS! Seperti gerhana, atau apa pun yang dimulai dengan Spotlight. (.bash_profile, launchd.conf hanya berfungsi untuk sesi terminal.) Sebelum memulai eclipse, cukup buka jendela terminal, dan berikan perintah berikut:
(Dengan jalur instalasi Anda! Mungkin berfungsi dengan $ (/ usr / libexec / java_home) alih-alih path lengkapnya juga.)
Lihat seluruh artikel bagus tentang solusi permanen di sini: Mengatur variabel lingkungan melalui launchd.conf tidak lagi berfungsi di OS X Yosemite / El Capitan / macOS Sierra?
sumber
Saya telah menemukan tumpukan ini untuk membantu, saya mengalami masalah yang sama dan saya dapat memperbaikinya:
Path java saya ada di sini:
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
dan diperlukan untuk dimasukkan ke dalam
.bash_profile
:export JAVA_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\"
Semoga bantuan
sumber
Melewati pengaturan Terminal sejak Anda menyebutkan aplikasi, pengaturan variabel lingkungan sistem permanen (berfungsi untuk macOS Sierra; harus juga berfungsi untuk El Capitan):
(ini akan mengatur JAVA_HOME menjadi 1,8 JDK terbaru, kemungkinan Anda telah melalui pembaruan serveral misalnya javac 1.8.0_101, javac 1.8.0_131)
Tentu saja, ubah 1,8 ke 1,7 atau 1,6 (sungguh?) sesuai dengan kebutuhan Anda dan sistem Anda
sumber
Seperti yang dicatat oleh jawaban lain, cara yang benar untuk menemukan direktori home Java adalah menggunakan
/usr/libexec/java_home
.Dokumentasi resmi untuk ini ada di Tanya Jawab Teknis Apple QA1170: Direktori Java Penting di OS X : https://developer.apple.com/library/mac/qa/qa1170/_index.html
sumber
Bagi saya maven tampaknya bekerja di luar
.mavenrc
file:Saya yakin saya mengambilnya di SO juga, hanya tidak ingat di mana.
sumber
Buat file
~/.mavenrc
lalu tempel ini ke file
export JAVA_HOME=$(/usr/libexec/java_home)
uji
mvn -v
sumber
Disarankan untuk memeriksa shell terminal default sebelum menetapkan variabel lingkungan JAVA_HOME , melalui perintah berikut:
Jika terminal default Anda adalah / bin / bash (Bash), maka Anda harus menggunakan metode @hygull
Jika terminal default Anda adalah / bin / zsh (Z Shell), maka Anda harus mengatur variabel lingkungan ini di file ~ / .zshenv dengan konten berikut:
Demikian pula, setiap jenis terminal lain yang tidak disebutkan di atas, Anda harus mengatur variabel lingkungan di masing-masing file terminal env.
Metode ini diuji bekerja di macOS Mojave Versi 10.14.6 .
sumber
Untuk pengguna Fish Shell, gunakan sesuatu seperti berikut:
alias java7 "set -gx JAVA_HOME (/usr/libexec/java_home -v1.7)"
sumber