Menginstal Java 7 pada Mac OS X tetapi Terminal masih menggunakan versi 6

391

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.

Yang
sumber
23
Saya punya masalah ini tetapi saya hanya memperbarui JRE dan bukan JDK. Setelah saya memperbarui JDK itu menunjukkan versi yang benar.
Paul Maserrat
Migrasikan ini ke Ask Different?
Nakilon
14
Hanya untuk menarik perhatian ekstra pada komentar @ Mazzy, itu kesalahan yang mudah dibuat. Mengunduh JRE v7 akan menyebabkan versi 7 muncul ketika menjalankan pemeriksa versi online, atau panel kontrol Java, tetapi ketika menggunakan Java dari baris perintah Anda akan menjalankan versi yang lebih lama dari JDK yang sebelumnya Anda instal. Jadi periksa ulang untuk memastikan Anda menginstal JDK dan bukan hanya JRE.
Cam Jackson
1
Cara terbaik untuk menyelesaikan ini adalah dengan menggunakan export JAVA_HOMEpendekatan, seperti yang dijelaskan di sini dengan cara yang sedikit lebih fleksibel.
Taman Brad
5
Izinkan saya menekankan hal ini dalam huruf kapital: BANYAK ORANG YANG MENDAPATKAN HALAMAN INI AKAN PERLU MENGUNDUH DAN MEMASANG JDK TERBARU. PANEL KONTROL JAWA HANYA MEMPERBARUI JRE.
Walter Tross

Jawaban:

64

Karena Anda perlu masuk di panel Preferensi Java dan hanya menandai JVM 7 dengan cara ini:

Preferensi Java

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.

aleroot
sumber
3
ya, menemukannya. tapi masih versi 1.6 di terminal, apakah saya perlu reboot atau sesuatu
Yang
1
Panel ini tidak ada lagi di 10.8. Alternatif?
Pepijn
68
@Pepijn Panale adalah sejarah sejak Mac OSX 10.8.2 dan sebenarnya tidak perlu lagi. Sebaliknya Anda harus menggunakan export JAVA_HOME=`/usr/libexec/java_home -v 1.7`untuk beralih ke Java 7 JDK terbaru dari Oracle.
Uwe Günther
23
Saya pikir mereka menyingkirkan Preferensi Java di beberapa titik. Itu tidak ditemukan oleh Spotlight di kotak saya. Menjalankan 10.8.5.
quickshiftin
1
Anda dapat menemukan lokasi tepat JAVA_HOME di bawah -> preferensi sistem -> java. Klik tab "Java". Klik lihat. Variabel Path menunjukkan JAVA_HOME Anda (ubin / Rumah).
Agaase
298

Penginstal Oracle menempatkan java di dalam /Library/Internet Plug-Ins/JavaAppletPlugin.plugin. Dan itu tidak menimpa /usr/bin/java. Jadi, jika Anda mengeluarkan a

whereis java

di 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/javasymlink sehingga itu menunjuk ke /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java:

sudo rm /usr/bin/java
sudo ln -s /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java /usr/bin
Ákos
sumber
22
Ini perintahnya: sudo ln -s / Library / Internet \ Plug-Ins / JavaAppletPlugin.plugin / Contents / Beranda / bin / java / usr / bin
Binarian
11
Perintah Viktor bekerja. Tetapi Anda mungkin juga perlu memastikan bahwa Anda menghapus java symlink yang adarm /usr/bin/java
Matt Florence
7
Sampai orang-orang Oracle meningkatkan proses ini, inilah HOWTO dari keseluruhan proses menginstal java pada sistem osx, hingga dan termasuk langkah symlink akhir ini: gist.github.com/johan/10590467
ecmanaut
61
saya dapatrm: /usr/bin/java: Operation not permitted
Aditya
37
Atauexport PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
Mick
114

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).

BrainO2
sumber
7
instal JDK lengkap, tidak hanya JRE.
BrainO2
5
-1 Itu tidak membantu. Instalasi JDK tidak berubah /usr/bin/javaatau JAVA_HOME. Tapi pengaturan JAVA_HOMEmembantu.
Andrii Nemchenko
3
Dikonfirmasi OK pada OSX 10.9.4. Itu tidak mengubah tautan / usr / bin, itu mengubah hal-hal di bawahnya. Jadi /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"
Joe Atzberger
1
Juga bekerja untuk JDK 1.8 - (instal JDK 1.8 bukan JRE 1.8)
Mark Chackerian
Saya mencoba menginstal Java 1.8, tetapi itu tidak berhasil pada El Capitan. Menginstal 1.7 memecahkan masalah saya.
SPRBRN
104

vi ~/.bash_profile

Menambahkan

export JAVA_HOME=`/usr/libexec/java_home -v 1.7`

Ini memberitahu /usr/bin/javatarget tautan Anda untuk menggunakan Paket Java 7 terbaru yang diinstal pada

/Library/Java/JavaVirtualMachines/

Jadi untuk JDK 1.7.0_17 JAVA_HOMEadalah:

/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

Uwe Günther
sumber
4
+1 untuk jawaban ini yang merupakan imo yang benar karena berfungsi pada versi Mac OS sebelum dan sesudah 'Java Preferences' dihapus, dan dengan menunjukkan opsi "-v", ini menunjukkan bagaimana Anda dapat menggunakan java 6 bahkan jika java 7 terinstal (yang saya inginkan). Oleh karena itu pada Mac saya yang menjalankan Lion (10.7.5) Saya menggunakan perintah yang sama dengan "-v 1.6". Ini sangat penting karena saya memerlukan Java 6 dan Oracle tidak menyediakan satu untuk Mac OS - hanya Java 7, dan ini memungkinkan saya untuk menggunakan JAva 6 yang terinstal meskipun Java 7 diinstal.
Rhubarb
1
Juga, untuk membuatnya lebih fleksibel: mikemainguy.blogspot.com/2014/11/…
Mainguy
info tambahan dapat ditemukan di sini untuk jawaban yang luar biasa ini!
Taman Brad
Ini bekerja untuk saya di Sierra 10.12 setelah menginstal 1,8 JKD ekspor bekerja dengan mengubah 1,7 menjadi 1,8. Jawaban yang bagus menggunakan utilitas java_home !!
Scott Byers
56

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

  1. Verifikasi bahwa itu dipasang dengan benar dengan melihat di System Prefs:

    • Command-Space untuk membuka Spotlight, ketik 'System Preferences', tekan enter.
    • Klik ikon Java di baris bawah. Setelah Java Control Panel terbuka, klik tab 'Java', 'View ...', dan pastikan instalasi Anda berhasil. Anda dapat melihat 'Path' di sana juga, yang dapat Anda masukkan ke dalam perintah di bawah jika mereka berbeda dari milik saya.
  2. Verifikasi bahwa versinya sesuai harapan (sub di jalur Anda sesuai kebutuhan):

    / Library / Internet \ Plug-Ins / JavaAppletPlugin.plugin / Isi / Beranda / bin / java-versi

  3. 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

  4. Sanity memeriksa versi Anda:

    versi java

dale.hamill
sumber
Bekerja untuk saya juga, saya juga mencoba penjelasan lain tetapi dengan Maverix tidak ada panel di mana Anda dapat memilih nomor versi dan juga mengubah .bash_profile tidak berfungsi. SEMPURNA!
Alex Cio
Eclipse tidak melihat 1,7 di bawah kompiler
Laser Hawk
Bekerja untukku !. Sebelum = 1.6.0_65 dan Setelah menggunakan solusi ini = 1.7.0_60 .... terima kasih! :)
matematika
tetapi gerhana memberikan kesalahan seperti masih 'perpustakaan bersama jvm tidak mengandung simbol jni_createjavavm' .... :(
maths
1
Terima kasih untuk bantuannya! Tidak ada yang berhasil kecuali ini. Running Yosemite
LordZardeck
33

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:

export JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_11.jdk/Contents/Home"

(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.

Derek
sumber
4
Direktori kosong. $ ls / Library / Java / JavaVirtualMachines /
Pepijn
1
Anda mungkin memiliki masalah dengan tempat Anda menginstal java 7. Silakan kunjungi situs web oracle . Klik tautan "Java SE Development Kit 7u11", terima perjanjian lisensi, dan unduh "jdk-7u11-macosx-x64.dmg". Gunakan dmg untuk menginstal Java 7 dan ini akan meletakkannya di direktori JavaVirtualMachines Anda.
Derek
Ini adalah salah satu solusi pada Mojave 10.14.1 di awal 2019
bitsand
27

Sejak El Capitan, sulit untuk menghapus /usr/bin/javasymlink, 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) ke PATHdalam .bashrcfile saya :

# Use latest java version
export PATH=/Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH

Untuk memuat ulang .bashrcfile Anda untuk sesi saat ini, jalankan source ~/.bashrcdi shell. Anda hanya perlu melakukan ini untuk sesi yang sudah dimulai sebelum mengubah .bashrcfile.

Sekarang versi terbaru digunakan, ketika Anda gunakan javadi shell.

TabeaKischka
sumber
1
Solusi khusus ini bekerja untuk saya di mac os x el capitan saya. Saya tidak mem-bypass pengaturan keamanan pada el capitan, tetapi menginstal java versi 1.8. Melakukan ekspor JAVA_HOME = / jalur spesifik saya, dll, dll / tidak berfungsi (setelah masuk ke preferensi dan mencari jalur ke 1.8). Harap dicatat 1,6 masih diinstal. Saya harus membuat file .bashrc dan mengatur path seperti yang dijelaskan di sini. Saya menjalankan java -versi dan shazzam! itu berhasil.
umbregachoong
Saya sangat ingin ini berfungsi karena saya menggunakan El Capitan dan tidak bisa mendapatkan solusi lain untuk berfungsi. Saya membuat file '.bashrc' dan menambahkan baris seperti di atas, tetapi jika saya mengetik 'java -versi' saya masih mendapatkan 1,6. Adakah yang mungkin saya abaikan?
noLongerRandom
@ user3810073 mungkin Anda perlu menjalankan source .bashrc, untuk memuat ulang isi .bashrc
TabeaKischka
Bekerja untukku. Saya menambahkan baris ke .bash_profile (di direktori home pengguna saya), kemudian sumber .bash_profile. Kemudian java-versi memberi saya yang terbaru. Terima kasih!
mrmuggles
Ini juga dapat dicapai dengan symlinking /usr/local/binseperti ini: sudo ln -sf "/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin/java" /usr/local/bin/java Anggapan /usr/local/binitu sebelumnya /usr/bindi Anda $PATHyang seharusnya secara default.
lifeofguenter
21

Bagi saya cara termudah dan terbersih adalah menginstal Java menggunakan homebrew seperti dijelaskan di sini:

https://stackoverflow.com/a/28635465

brew update
brew cask install java
Bernhardt Scherer
sumber
Solusi sederhana dan bersih !. Bekerja seperti pesona.
Rahul Shukla
2
Ini adalah satu-satunya solusi yang memperbarui java dan javac. Terima kasih!
ldanilek
Bekerja seperti pesona :) Terima kasih banyak
Mohamed Saleh
ini akan menginstal versi terbaru java, bukan Java7
Ivo
13

Masalah dasar: /usr/bin/javamenunjuk 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.

  • Buka System Preferences -> pilih Java. Jendela Java terbuka.
  • Klik pada tab Java di atas. Klik tombol 'Lihat'.
  • Tab Java Runtime Environment Settings terbuka seperti di bawah ini: Tab Pengaturan JRE
  • Klik dua kali pada Pathitem 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
  • Terminal terbuka. Pada langkah ini, kita akan menunjuk (symbolic link, ln -scommand) 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.

Aswin Kumar
sumber
2
Bekerja untuk saya, kecuali bahwa saya harus menambahkan perintah -f ke ln. Kalau tidak, jika gagal dengan ln: / usr / bin / java: File ada
Dale
dalam kasus saya, saya akan menggunakan usr/local/binalih-alih usr/bindalam perintah terminal
iAkshay
Saya mendapatkan "operasi tidak diizinkan".
Shardul
Mendapatkan jalan dengan cara ini sangat ideal. Saya kemudian dapat mengekspornya dan memuat ulang bashrc untuk menyelesaikan masalah versi. Dalam kasus saya, saya bermigrasi dari versi 7 ke 8 di Mojave 10.14.1
bitsand
12

Anda dapat menjalankan perintah berikut di terminal Anda:

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"

Dan ini menggantikan yang lama java dengan yang baru.

Amulya Kashyap
sumber
1
Anehnya itu menggantikan tetapi kemudian jika saya menutup terminal dan membuka lagi, itu lagi menunjukkan versi yang lebih tua
Parth Patel
itu benar. sangat tidak. solusi sangat sementara
Seorang pengguna
1
menambahkannya ke file .bashrc lalu source ~/.bashrcmembuatnya permanen
Azimjon Ilkhomov
10

aku melakukannya

export JAVA_HOME=`/usr/libexec/java_home`

dan itu memperbaiki masalah Java 8 saya.

sebelum:

java version "1.6.0_31"
Java(TM) SE Runtime Environment (build 1.6.0_31-b04)
Java HotSpot(TM) 64-Bit Server VM (build 20.6-b01, mixed mode)

setelah:

java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)
Climbs_lika_Spyder
sumber
1
Ini /usr/libexec/java_homeindikasi yang sangat bagus, terima kasih!
Raffi
1
Apakah pekerjaan untuk saya setelah membaca banyak solusi yang mungkin! Terima kasih :)
ronnyrr
7

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.

revher
sumber
2
Ini adalah informasi yang baik, tetapi Anda harus benar-benar memberikan rincian lebih dari sekadar tautan. Jika tautan rusak di masa mendatang, jawaban Anda benar-benar tidak akan sangat berguna.
psubsee2003
7

Bolehkah saya menyarankan Anda untuk melihat alat Jenv

Ini akan memungkinkan Anda untuk beralih kapan saja antara JVM yang diinstal.

Hanya sebagai:

jenv global oracle-1.7

kemudian untuk tujuan pengujian:

jenv global oracle-1.6

Dan Anda memiliki lebih banyak perintah yang tersedia.

TitiMoby
sumber
Beri +1 untuk jawaban ini karena Anda dapat menggunakan Homebrew, jika Anda sudah menggunakannya di sistem OS X Anda. Jauh lebih bersih dari yang lain saya katakan. Info lebih lanjut di sini: jenv.be
piku
6

Hard-coding jalur JAVA_HOME mungkin bukan ide terbaik. The /usr/libexec/java_homeambang 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 -Vdaftar 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:

export JAVA_HOME=$(/usr/libexec/java_home)
zagyi
sumber
Saya setuju dengan komentar Anda di sini, karena itu adalah praktik terbaik, tetapi karena beberapa alasan variabel lingkungan java_home tidak diset dengan benar, itulah sebabnya mengapa ini tidak berhasil. Saya percaya pembaruan terbaru Apple saran Anda adalah tindakan default untuk JAVA_HOME di terminal dan aplikasi terkait lainnya secara default.
Derek
@ Derek Apa maksud Anda sebenarnya pada "variabel lingkungan java_home tidak diatur dengan benar"? Menurut artikel ini yang /usr/libexec/java_homeutilitas 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.
zagyi
1
ya itu seharusnya bekerja tetapi tidak untuk orang dengan masalah yang telah disebutkan pepijin.
Derek
6

Ini gila! Bagaimana Oracle menyediakan installer yang tidak menginstal apa pun !?

Bagi saya itu adalah:

sudo rm /usr/bin/java
sudo ln -s /Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home/jre/bin/java /usr/bin/java

di mana 1.8.0_31 adalah versi java yang diinstal ...

Kevin Parker
sumber
Mengapa Apple tidak menyediakan metode yang tepat?
jwilleke
6

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:

ls -la /Library/Java/JavaVirtualMachines
drwxr-xr-x  3 root  wheel    96B Nov 16  2014 jdk1.7.0_71.jdk/
drwxr-xr-x  3 root  wheel    96B Mar  1  2015 jdk1.8.0_31.jdk/

Anda dapat mengubahnya dengan memodifikasi / etc / content profile. Cukup tambahkan (atau modifikasi) dua baris berikut di akhir file:

export JAVA_HOME=YOUR_JAVA_PATH/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

Dalam kasus saya, harus seperti berikut ini jika saya ingin menggunakan:

Java 7:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.7.0_71.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

Java 8:

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_31.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH

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 -version
java version "1.7.0_71"
Java(TM) SE Runtime Environment (build 1.7.0_71-b14)

Java 8:

java -version 
java version "1.8.0_31"
Java(TM) SE Runtime Environment (build 1.8.0_31-b13)

Prosesnya serupa jika folder java Anda berada di lokasi yang berbeda.

nxhoaf
sumber
5

Solusi Sederhana

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
Mick
sumber
Luar biasa. Solusi ini membuat hari saya. Terima kasih banyak, Mick
Pengguna,
3

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.

DDDrop
sumber
3

Jika Homebrew telah diinstal, Anda dapat menginstal java-switcher untuk mengubah versi standar Java lebih cepat

brew tap andycillin/tap
brew install java-switcher

Kemudian Anda dapat menggunakan hanya satu perintah untuk mengganti versi Java default Anda.

java-switcher 1.7

atau

java-switcher 10
Andy Tran
sumber
Terima kasih Andy, ini mudah.
GreenROBO
1

Anda dapat menjalankan perintah ini untuk menemukan versi Java yang berada di bawah / Library / Internet Plugins /:

defaults read /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin/Contents/Info.plist CFBundleVersion
Hefewe1zen
sumber
1

Itu terjadi karena .bash_profile Anda tidak mencerminkan perubahan. Untuk mencerminkannya, gunakan saja perintah berikut

$ source .bash_profile
Raghav Sharma
sumber
0

Karena saya belum menghadapi masalah ini, saya menduga -

Bisakah Anda mencoba ini:

Di mana tautan lunak "java_home" menunjuk ke:

ls -lrt /usr/libexec/java_home

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:

 lrwxr-xr-x CurrentJDK ->
 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents**

 lrwxr-xr-x   Current -> A
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.6.0 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.6 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.5.0 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.5 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.4.2 -> CurrentJDK
 lrwxr-xr-x  1 root  wheel   10 Oct 18 14:39 1.4 -> CurrentJDK

Berdasarkan ini, kita mungkin mendapatkan petunjuk untuk melanjutkan lebih jauh?

pengguna1428716
sumber
baca beberapa komentar di Internet tentang masalah Java 7 dengan MAC-OSX dan ini menunjukkan diblokir. Lihat ini: grep.dk/tag/xprotect-meta-plist . Dalam XProtect.meta.plist saya memiliki Java 7 dan Flash terdaftar. Sampai saat ini memainkan Polisi Kerentanan
user1428716
0

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.

AJAY
sumber
0

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/javatidak bekerja untuk saya karena saya punya Operation 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.

Charles Hamel
sumber
0

Menginstal melalui JDK DMG yang didistribusikan dari situs Oracle secara otomatis memperbarui semuanya untuk saya. Saya telah melihat (di El Capitan) memperbaruiSystem Preferences > Java melakukan pembaruan tetapi itu tidak mencerminkan ke baris perintah. Menginstal melalui DMG melakukan pekerjaan.

Santanu Karar
sumber
0

Periksa versi JDK diinstal:

$ ls  /Library/Java/JavaVirtualMachines/
jdk-11.0.2.jdk  jdk1.8.0_91.jdk

Sekarang dalam ~/.bashrcekspor Anda JAVA_HOMEmenentukan versi:

if [ -e /usr/libexec/java_home ]; then
  export JAVA_HOME=$(/usr/libexec/java_home -v 11)
fi

Sumber file bashrc dan versi Java akan diperbarui:

$ java -version
java version "11.0.2" 2019-01-15 LTS
Java(TM) SE Runtime Environment 18.9 (build 11.0.2+9-LTS)
Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.2+9-LTS, mixed mode)
Miguel Mota
sumber
0

Metode 100% efektif terbaru:


dalam bash:

vim ~/.bash_profile

Menambahkan

export PATH="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home/bin:$PATH"
  • :wq untuk menyimpan
  • cmd + q memaksa berhenti bash
  • buka bash lagi, dan ketik java -version

Tetapi sebenarnya jalur ini menunjuk ke jre bukan jdk.

Jika Anda ingin mengarahkan jalur ke JDK, Anda perlu

  1. Pastikan Anda telah menginstal JDK bukan runtime JRE tunggal
  2. ganti path sebelumnya ke PATH="/Library/Java/JavaVirtualMachines/jdk1.8.0_221.jdk", Anda dapat pergi ke /Library/Java/JavaVirtualMachinesuntuk memastikan Anda telah menginstal versi JDK yang Anda harapkan.
liangli
sumber