Saya telah menginstal JDK 7u7 yang diunduh dari situs web oracle. Tetapi setelah instalasi, terminal masih menunjukkan versi java 6
$java -version
java version "1.6.0_35"
Java(TM) SE Runtime Environment (build 1.6.0_35-b10-428-11M3811)
Java HotSpot(TM) 64-Bit Server VM (build 20.10-b01-428, mixed mode)
tahu mengapa java 7 tidak muncul?
Jawab: Oke, masalahnya sudah teratasi. Inilah jawabannya: Saya menemukan bahwa Terminal saya memiliki .bash_profile dan variabel home java diatur ke 1.6
export JAVA_HOME="/System/Library/Frameworks/JavaVM.framework/Versions/1.6.0/Home"
Jadi ini adalah garis yang menyebabkan masalah setiap kali saya membuka jendela terminal baru. Cukup hapus baris ini akan menyelesaikan masalah. Anda masih perlu mengikuti apa yang dikatakan @aleroot, tetapi jika itu tidak berhasil, periksa file pengaturan .bash_profile (atau .bashrc) untuk melihat apakah Anda sebelumnya telah mengekspor versi java.
export JAVA_HOME
pendekatan, seperti yang dijelaskan di sini dengan cara yang sedikit lebih fleksibel.Jawaban:
Karena Anda perlu masuk di panel Preferensi Java dan hanya menandai JVM 7 dengan cara ini:
Untuk dengan mudah dan cepat membuka panel Java Preferences di Mac OS X Anda cukup memanggil spotlight dengan ⌘+SPACE dan ketik System Preferences itu akan muncul di baris terakhir jendela.
sumber
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
untuk beralih ke Java 7 JDK terbaru dari Oracle.Penginstal Oracle menempatkan java di dalam
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin
. Dan itu tidak menimpa/usr/bin/java
. Jadi, jika Anda mengeluarkan adi terminal, ia akan kembali / usr / bin / java. (yang pada gilirannya menunjuk ke
/System/Library/Frameworks/JavaVM.framework/Versions/A/Commands/java
, yang merupakan versi Apple 1.6).Jadi, jika Anda ingin menggunakan versi java yang baru, ganti
/usr/bin/java
symlink sehingga itu menunjuk ke/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
:sumber
rm /usr/bin/java
rm: /usr/bin/java: Operation not permitted
export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
Instal JDK 7 dan masalah ini akan menyelesaikan sendiri.
Pastikan untuk mendapatkan Java Development Kit (JDK) yang mencakup kompiler dan hal-hal seperti itu, bukan hanya Java Runtime Environment (JRE).
sumber
/usr/bin/java
atauJAVA_HOME
. Tapi pengaturanJAVA_HOME
membantu./usr/bin/java -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java # But: /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java -version java version "1.7.0_67"
vi ~/.bash_profile
Menambahkan
export JAVA_HOME=`/usr/libexec/java_home -v 1.7`
Ini memberitahu
/usr/bin/java
target tautan Anda untuk menggunakan Paket Java 7 terbaru yang diinstal pada/Library/Java/JavaVirtualMachines/
Jadi untuk JDK
1.7.0_17
JAVA_HOME
adalah:/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home
Catatan: Ada banyak perubahan di area ini baru-baru ini untuk memindahkan Mac OS X dari paket Java yang terintegrasi Sistem milik Appel ke Paket Java berbasis Oracle. Solusi di atas berfungsi dengan baik pada Mac OS X 10.8.2
sumber
Dalam kasus saya, masalahnya adalah Oracle menginstalnya ke lokasi yang berbeda dari yang biasa saya lakukan.
Unduh dari Oracle: http://java.com/en/download/mac_download.jsp?locale=en
Verifikasi bahwa itu dipasang dengan benar dengan melihat di System Prefs:
Verifikasi bahwa versinya sesuai harapan (sub di jalur Anda sesuai kebutuhan):
/ Library / Internet \ Plug-Ins / JavaAppletPlugin.plugin / Isi / Beranda / bin / java-versi
Buat tautan dari / usr / bin / java ke instalasi baru Anda
sudo ln-fs / Library / Internet \ Plug-Ins / JavaAppletPlugin.plugin / Isi / Beranda / bin / java / usr / bin / java
Sanity memeriksa versi Anda:
versi java
sumber
Saya telah mengalami masalah serupa dengan terminal tidak memperbarui versi java untuk mencocokkan versi yang diinstal pada mac.
Tidak ada masalah dengan variabel lingkungan JAVA_HOME yang ditetapkan
Saya telah menemukan solusi sementara dan agak menyakitkan tetapi berhasil.
Di Anda .bash_profile tambahkan baris:
(Ini adalah jalur pada mesin saya tetapi mungkin berbeda pada Anda, pastikan untuk mendapatkan Anda. Path harus sesuai dengan / Library / Java / JavaVirtualMachines /)
lari
source ~/.bash_profile
Seperti yang saya sebutkan ini adalah solusi band-bantuan sementara karena jalur home java sedang dikodekan. Sebenarnya tidak ada cara untuk menetapkan jalur untuk mendapatkan yang terbaru karena itulah yang seharusnya dilakukan Apple untuk terminal dan masalahnya adalah bahwa variabel lingkungan java_home Apple tidak diperbarui.
sumber
Sejak El Capitan, sulit untuk menghapus
/usr/bin/java
symlink, karena pengenalan kebijakan baru "rootless".Oleh karena itu, saya cukup menambahkan path ke versi java terbaru (dalam kasus saya ini
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin
) kePATH
dalam.bashrc
file saya :Untuk memuat ulang
.bashrc
file Anda untuk sesi saat ini, jalankansource ~/.bashrc
di shell. Anda hanya perlu melakukan ini untuk sesi yang sudah dimulai sebelum mengubah.bashrc
file.Sekarang versi terbaru digunakan, ketika Anda gunakan
java
di shell.sumber
source .bashrc
, untuk memuat ulang isi .bashrc/usr/local/bin
seperti ini:sudo ln -sf "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java" /usr/local/bin/java
Anggapan/usr/local/bin
itu sebelumnya/usr/bin
di Anda$PATH
yang seharusnya secara default.Bagi saya cara termudah dan terbersih adalah menginstal Java menggunakan homebrew seperti dijelaskan di sini:
https://stackoverflow.com/a/28635465
sumber
Masalah dasar:
/usr/bin/java
menunjuk ke salah satu yang disediakan oleh OSX sendiri pada awalnya (/System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java
) Kita perlu mengarahkan ini ke yang diunduh oleh penginstal JDK. Langkah-langkah di bawah ini adalah untuk OSX 10.10.4 Yosemite.Path
item dan salin path (cmd + c). Ini adalah yang terbaru dipasang oleh pemasang / pembaru JDK. Dalam kasus saya, jalan itu/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java
ln -s
command) sistem java binary ke yang terbaru, yang kami temukan pada langkah sebelumnya. Jalankan perintah di bawah ini:sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin/java
Itu dia. Untuk memverifikasi, Anda bisa menjalankannya
java -version
di terminal. Seharusnya menampilkan versi terbaru yang Anda instal / perbarui.sumber
usr/local/bin
alih-alihusr/bin
dalam perintah terminalAnda dapat menjalankan perintah berikut di terminal Anda:
Dan ini menggantikan yang lama java dengan yang baru.
sumber
source ~/.bashrc
membuatnya permanenaku melakukannya
dan itu memperbaiki masalah Java 8 saya.
sebelum:
setelah:
sumber
/usr/libexec/java_home
indikasi yang sangat bagus, terima kasih!http://www.java.com/en/download/faq/java_mac.xml adalah tempat yang bagus untuk dipahami, sementara Apple menghentikan dukungan ke Java, mengapa Java Preferences tidak ada lagi dan mengandalkan System_Preferences => Java = > Java jika Java 7 dari Oracle diinstal.
sumber
Bolehkah saya menyarankan Anda untuk melihat alat Jenv
Ini akan memungkinkan Anda untuk beralih kapan saja antara JVM yang diinstal.
Hanya sebagai:
kemudian untuk tujuan pengujian:
Dan Anda memiliki lebih banyak perintah yang tersedia.
sumber
Hard-coding jalur JAVA_HOME mungkin bukan ide terbaik. The
/usr/libexec/java_home
ambang utilitas bekerja untuk saya pada Mac OSX Singa 10.7.5 dan JDK 1.7.0_13. Menurut halaman manualnya, ini dimaksudkan untuk digunakan dengan panel Java Preferences lama Apple, tetapi tampaknya bekerja dengan penggantian yang disediakan oleh Oracle (Java Control Panel). Misalnya menjalankan/usr/libexec/java_home -V
daftar semua JDK yang diinstal (baik 1.6. * Dan 1.7. *) Pada mesin saya.Jadi, seperti yang dibahas di utas lainnya (mis. Apa yang harus saya setel pada JAVA_HOME di OSX ), saya tetap merekomendasikan menambahkan baris berikut ke .bash_profile Anda:
sumber
/usr/libexec/java_home
utilitas dimaksudkan untuk dapat bekerja juga dengan java 7 versi, dan ia mengembalikan jalur to date up-to-paling JDK diinstal. Itu bekerja dengan baik pada mesin saya.Ini gila! Bagaimana Oracle menyediakan installer yang tidak menginstal apa pun !?
Bagi saya itu adalah:
di mana 1.8.0_31 adalah versi java yang diinstal ...
sumber
Jika Anda memiliki beberapa versi Java pada mesin Anda dan Anda ingin memilihnya secara dinamis saat runtime, yaitu, dalam kasus saya, saya memiliki dua versi:
Anda dapat mengubahnya dengan memodifikasi / etc / content profile. Cukup tambahkan (atau modifikasi) dua baris berikut di akhir file:
Dalam kasus saya, harus seperti berikut ini jika saya ingin menggunakan:
Java 7:
Java 8:
Setelah menyimpan file, silakan jalankan
source /etc/profile
dan itu akan berfungsi. Berikut adalah hasil ketika saya menggunakan opsi pertama dan kedua yang sesuai:Java 7:
Java 8:
Prosesnya serupa jika folder java Anda berada di lokasi yang berbeda.
sumber
Solusi Sederhana
sumber
Saya pikir Anda dapat mencoba menginstal jdk bukan jre. Dengan menginstal jdk, java di / usr / bin / java akan diganti, dan semua library akan berfungsi dengan baik.
sumber
Jika Homebrew telah diinstal, Anda dapat menginstal java-switcher untuk mengubah versi standar Java lebih cepat
Kemudian Anda dapat menggunakan hanya satu perintah untuk mengganti versi Java default Anda.
atau
sumber
Anda dapat menjalankan perintah ini untuk menemukan versi Java yang berada di bawah / Library / Internet Plugins /:
sumber
Itu terjadi karena .bash_profile Anda tidak mencerminkan perubahan. Untuk mencerminkannya, gunakan saja perintah berikut
sumber
Karena saya belum menghadapi masalah ini, saya menduga -
Bisakah Anda mencoba ini:
Di mana tautan lunak "java_home" menunjuk ke:
Output: (Stunted) lrwxr-xr-x java_home -> /System/Library/Frameworks/JavaVM.framework/Versions/Versions/Current/Commands/java_home
** ls-lrt /System/Library/Frameworks/JavaVM.framework/Versions My MAC Menghasilkan yang berikut:
Berdasarkan ini, kita mungkin mendapatkan petunjuk untuk melanjutkan lebih jauh?
sumber
saya menyelesaikan masalah ini dengan menginstal ulang Yosemite dan kemudian memeriksa silang versi java di terminal (java-versi) dan (javac-versi). Ini berfungsi dengan baik sekarang. Ini tidak berubah ke java 7 karena versi 6 masih ada di (perintah + n ) libray> java> javavirtualmachine> versi javac Anda saat ini. Anda perlu alamat home java.
sumber
Saya menyelesaikan masalah ini dengan
sudo rm /usr/bin/java
Dan saya mengunduh dan menginstal Java SE Runtime Environment terakhir: http://www.oracle.com/technetwork/java/javase/downloads/index.html
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/bin/java /usr/bin/java
tidak bekerja untuk saya karena saya punyaOperation not permitted
. El Capitan sekarang melindungi direktori sistem tertentu dalam mode "tanpa akar" (alias Perlindungan Integritas Sistem). Ini berlaku untuk macOS Sierra, dan mungkin versi macOS baru untuk masa yang akan datang.sumber
Menginstal melalui JDK DMG yang didistribusikan dari situs Oracle secara otomatis memperbarui semuanya untuk saya. Saya telah melihat (di El Capitan) memperbarui
System Preferences > Java
melakukan pembaruan tetapi itu tidak mencerminkan ke baris perintah. Menginstal melalui DMG melakukan pekerjaan.sumber
Periksa versi JDK diinstal:
Sekarang dalam
~/.bashrc
ekspor AndaJAVA_HOME
menentukan versi:Sumber file bashrc dan versi Java akan diperbarui:
sumber
Metode 100% efektif terbaru:
dalam bash:
Menambahkan
:wq
untuk menyimpanjava -version
Tetapi sebenarnya jalur ini menunjuk ke jre bukan jdk.
Jika Anda ingin mengarahkan jalur ke JDK, Anda perlu
PATH="/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk"
, Anda dapat pergi ke/Library/Java/JavaVirtualMachines
untuk memastikan Anda telah menginstal versi JDK yang Anda harapkan.sumber