Bagaimana saya bisa beralih di antara dua versi Java di Mountain Lion sekarang setelah Java Preferences hilang?

32

Saya memiliki dua versi Java yang diinstal dengan Mountain Lion:

Pembaruan dari Apple menghapus Java Preferences . Dalam pertanyaan lain seseorang bertanya-tanya tentang penghapusan utilitas itu.

Pertanyaan saya berbeda:

  • bagaimana saya bisa beralih di antara dua versi sekarang setelah Preferensi Java hilang?

Saya sebelumnya menggunakan utilitas Apple untuk mengatur preferensi Java dengan mudah. Tanpa utilitas itu, adakah cara yang mudah dan cepat?

Maverik
sumber
Apakah ada alasan mengapa Anda tidak dapat menginstal ulang Java Preferences ?
chharvey
@ TestSubject528491 Bagaimana saya bisa melakukan itu?
Maverik
Saya pikir ini akan membantu Anda, saya belum mencobanya di mesin saya. Lihat langkah 12 dan 13 dari tautan berikut wikihow.com/Instal-Oracle-Java-on-Ubuntu-Linux . Anda dapat mengulangi langkah-langkah untuk bergeser antara java .. semoga ini membantu Anda ..
Dilip Rajkumar
@DilipRajkumar Ini untuk linux ....
Maverik
Maaf saya salah berasumsi bahwa perintah linux akan bekerja di Mac .. Jika saya beruntung dengan solusi lain saya tidak menyarankan ..
Dilip Rajkumar

Jawaban:

12

Anda mungkin memerlukan dua pendekatan:

  • satu untuk mengganti versi untuk plug-in applet saja
  • pendekatan lain untuk mengganti versi untuk bagian JRE lainnya tanpa mengganti versi untuk plug-in applet.

Kasus penggunaan terakhir saya :

  • Java 8 untuk aplikasi yang tidak menggunakan plug-in
  • Java 7 Update 9 untuk plug-in applet.

Untuk mengganti plug-in applet tetapi tidak pada bagian lain dari JRE / JDK dari Java 8 ke Java 7 Pembaruan 9

  1. keluar dari browser web dan aplikasi lain yang menggunakan Java atau plug-in Java applet
  2. instal JDK 8
  3. sisihkan plug-in
  4. instal JRE 7 Update 9 atau JDK 7 Update 09.

Menyisihkan: gerakan yang disarankan

sudo mv /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin /private/var/tmp

Jika Anda berencana untuk sering berganti , Anda dapat memilih lokasi sementara yang berbeda.

Hasil

sh-3.2$ java -version
java version "1.8.0-ea"
Java(TM) SE Runtime Environment (build 1.8.0-ea-b58)
Java HotSpot(TM) 64-Bit Server VM (build 25.0-b02, mixed mode)
sh-3.2$ sw_vers
ProductName:    Mac OS X
ProductVersion: 10.8.2
BuildVersion:   12C60

Pada waktu bersamaan:

Cuplikan layar verifikasi Oracle untuk versi Java di Safari

Untuk mengganti plug-in applet tetapi tidak pada bagian lain dari JRE / JDK dari Java 7 Pembaruan 9 ke Java 6 Pembaruan 37

Jawaban di bawah:


Untuk beralih JRE tetapi tidak plug-in applet dari Java 8 ke Java 7 Pembaruan 9

Instal JDK 7 Perbarui 09 lalu JDK 8

  • OS dan aplikasi akan secara default menggunakan versi terhebat.

Tutup semua aplikasi yang menggunakan Java. Tidak perlu keluar dari browser.

Sisihkan jdk1.8direktori ... dari

/Library/Java/JavaVirtualMachines

  • OS dan aplikasi akan menggunakan Java 7 Update 9.

Untuk beralih JRE tetapi tidak plug-in applet dari Java 7 Pembaruan 9 ke Java 6 Pembaruan 37

Tutup semua aplikasi yang menggunakan Java. Tidak perlu keluar dari browser.

Sisihkan jdk1.7direktori ... dari

/Library/Java/JavaVirtualMachines

  • OS dan aplikasi akan menggunakan Java 6 Update 37.

Contoh

macbookpro08-centrim:~ gjp22$ java -version
java version "1.7.0_09"
Java(TM) SE Runtime Environment (build 1.7.0_09-b05)
Java HotSpot(TM) 64-Bit Server VM (build 23.5-b02, mixed mode)
macbookpro08-centrim:~ gjp22$ sudo mv /Library/Java/JavaVirtualMachines/jdk1.7.0_09.jdk /private/var/tmp
Password:
macbookpro08-centrim:~ gjp22$ java -version
java version "1.6.0_37"
Java(TM) SE Runtime Environment (build 1.6.0_37-b06-434-11M3909)
Java HotSpot(TM) 64-Bit Server VM (build 20.12-b01-434, mixed mode)

Umumnya

Untuk pengguna OS X, sebagian dari apa yang disediakan oleh Oracle pada awalnya menyesatkan:

… dan seterusnya.

Kesederhanaan

Meskipun tidak satu pun di atas sesederhana beralih dengan aplikasi Java Preferences yang sebelumnya diinstal oleh Apple, pendekatan yang relatif sederhana untuk mengesampingkan (tidak perlu untuk menghapus instalasi khusus) mengingatkan pada keinginan untuk instalasi drag-and-drop ... yang sebelumnya dinyatakan dalam area openjdk-osx-build .

Seseorang mungkin ingin membangun sebuah aplikasi, tetapi saya tidak harus merekomendasikan menggunakan symlink - itu akan berhasil, tetapi bisa tidak konsisten dengan pendekatan drag-and-drop di masa depan untuk instalasi.

Catatan samping

Pada saat penulisan, rilis terbaru yang didukung dimana Oracle membuat pembaruan tersedia untuk umum adalah (untuk platform selain OS X) Java 6 Pembaruan 37 dan (untuk platform termasuk OS X) Java 7 Pembaruan 9.

Karena rilis yang lebih besar akan tersedia, harap tafsirkan kembali jawaban ini sesuai.

Terminologi versi Java dalam jawaban ini sejalan dengan terminologi Java Help Center .

Graham Perrin
sumber
Apakah Anda benar-benar merujuk ke Java 8 atau itu kesalahan? :-)
Maverik
1
Sungguh ;-) ... silakan lihat pertanyaan terkait, kolom sebelah kanan.
Graham Perrin
4
Berikut ini tip jika Anda menggunakan JDK8 dan ingin sering berganti. Cukup chmod 0000 direktori JDK8 untuk mematikannya sudo chmod 0000 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/dan menyalakannya kembali sudo chmod 0755 /Library/Java/JavaVirtualMachines/jdk1.8.0.jdk/.
Brett Ryan
1
Saran terakhir dari @BrettRyan bekerja dengan baik untuk saya. Saya pikir ini adalah cara termudah untuk pergi.
Artem
1
Terima kasih banyak @BrettRyan itu yang paling sederhana !!! Saya menyarankan penulis jawaban untuk menambahkannya sebagai alternatif. Saya telah membuat .sh di folder rumah saya dengan perintah, dan membuat Automator diikat ke tombol yang beralih dari satu ke yang lain. Luar biasa!
Panthro
29

Buka terminal, gunakan perintah ini:

/usr/libexec/java_home -v 1.6 

Anda bisa mengubah 1.6 ke versi java mana saja yang ingin Anda gunakan dan perintah akan menampilkan lokasi di mana versi java itu berada. (yaitu: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home)

maka Anda dapat mengatur JAVA_HOME seperti biasanya dengan output dari perintah sebelumnya. yaitu:

export JAVA_HOME=/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Jadi untuk mempermudah; sesuatu seperti ini seharusnya bekerja:

export JAVA_HOME=$(/usr/libexec/java_home -v 1.6)

ingatlah untuk memeriksa versi dengan:

java -version

Semoga ini bisa membantu.

pengguna2343996
sumber
4
Ini adalah jawaban paling berguna untuk masalah ini yang bisa saya temukan di mana saja secara online. TERIMA KASIH!
SearchTools-Avi
1
Ok, INI seharusnya jawaban yang diterima. Saya memiliki JAR pembaruan wajib untuk server aplikasi yang telah saya instal dan HANYA akan berjalan di Java 6. Menggunakan ini, saya bisa beralih ke Java 6, menjalankan updater, lalu beralih kembali. Sekarang saya dapat memperbarui aplikasi server untuk berjalan di Java 7.
Adrian J. Moreno
4

Sepertinya Anda harus melakukannya secara manual. Dokumentasi Oracle menyatakan bahwa hanya satu JRE yang dapat diinstal pada satu waktu .

Halaman dukungan Apple ini menjelaskan cara beralih antara Apple SE 6 JRE dan Oracle SE 7 JRE . Secara singkat, untuk beralih dari Oracle JRE kembali ke Apple, jalankan aplikasi Terminal dan ketik yang berikut ini:

sudo mkdir -p /Library/Internet\ Plug-Ins/disabled

sudo mv /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin /Library/Internet\ Plug-Ins/disabled

sudo ln -sf /System/Library/Java/Support/Deploy.bundle/Contents/Resources/JavaPlugin2_NPAPI.plugin /Library/Internet\ Plug-Ins/JavaAppletPlugin.plugin

Ada lebih banyak (dan lebih baik) instruksi pada halaman dukungan tentang cara beralih Web Mulai kembali ke JRE 6, dan cara mengalihkan semuanya kembali ke Oracle JRE 7 (instal ulang JRE).

Tidak sesederhana menggunakan utilitas Java Preferences, tetapi lebih baik daripada tidak sama sekali.

dfjacobs
sumber
1
Penggunaan istilah JRE baru-baru ini oleh Oracle menyesatkan para pengguna OS X. JRE lebih dari sekadar plug-in.
Graham Perrin
2

berdasarkan jawaban user2343996

alias java8="export JAVA_HOME=$(/usr/libexec/java_home -v 1.8) && java -version"
alias java6="export JAVA_HOME=$(/usr/libexec/java_home -v 1.6) && java -version"
existeundelta
sumber
-4

Mengapa Anda perlu menginstal 2 versi Java?

Apple tidak menginstal Java sebagai pembaruan default (dari Lion dan seterusnya, saya percaya). Cara terbaik untuk memeriksa / menginstal Java pada Mac adalah sebagai berikut:

  1. Buka Terminal. Ketik "java" (tanpa tanda kutip tentunya)
  2. Jika java tidak ada, Anda mendapatkan yang berikut: "Tidak ada Java Runtime hadir, meminta instal ..."
  3. Java mulai menginstal secara normal (ini adalah executable palsu yang memulai instalasi)
  4. Jika Anda memiliki java untuk memeriksa versinya, ketik terminal "java-version"

Jika Anda ingin menginstal versi java yang berbeda: Cukup buka situs oracle dan unduh jdk terbaru / lama.

SashaZd
sumber
Saya sudah memiliki dua versi Java seperti yang saya tulis dalam pertanyaan. Saya bertanya bagaimana cara mengubah yang standar.
Maverik
Saya pikir itu secara otomatis beralih ke versi terbaru / versi terbaru yang diinstal. Dalam kasus saya, saya menginstal jdk 7 terakhir. Jadi itu yang bekerja secara default.
SashaZd
3
Saya ingin dapat beralih antar versi.
Maverik
Ada perbedaan antara Apple JDK 6 dan Oracle JDK 7 yang dapat menyebabkan ketidakcocokan, baik pada waktu kompilasi dan pada saat run time.
JohnnyO
1
Secara umum, kami tidak mencoba mengubah premis seseorang kecuali jika kami dapat menawarkan alternatif yang bersaing atau menarik ketika jawabannya tidak. Kami juga tidak menyarankan meminta suara jadi saya telah mengeditnya dari jawaban Anda.
bmike