Menginstal Java pada OS X 10.9 (Mavericks)

321

Saya telah menginstal JDK pada Mac OS X v10.8 (Mountain Lion). Ketika saya memutakhirkannya ke Mac OS X v10.9 (Mavericks) dan berlari java -versiondi terminal, itu menunjukkan:

Tidak ada Java runtime yang hadir, meminta instalasi.

Kemudian saya menginstal JDK (1.7) secara manual di Mac saya. Tampaknya instalasi bekerja dengan baik. Ketika instalasi selesai, saya membuka terminal dan mengetik java -versionjuga. Itu juga menunjukkan kesalahan yang sama:

Tidak ada Java runtime yang hadir, meminta instalasi.

Bagaimana saya bisa menyelesaikan masalah ini?

pengguna2909913
sumber
1
Saya tidak tahu masalah apa yang ada di terminal tapi saya menjalankan gerhana dan semua proyek dikompilasi dengan baik di maverick
Sunny
1
tampaknya peluncur java lama hanya mendukung jdk 1.6 tetapi mavericks tidak memiliki 1.6 diinstal secara default.
Shawn
1
Anda menginstal java 6, bukan java 7 sebagai OP awalnya tersirat mereka butuhkan. Saya tertarik pada bagaimana solusi itu dicapai. Juga harus ada pendekatan 'alternatif' di sini yang secara langsung menangani umpan balik dari terminal.
Rondo
4
Ini bagus untuk Java 6, tetapi bagaimana Anda bisa membuat Java 7 berfungsi?
190290000 Ruble Man
2
Menambahkan jawaban potensial untuk menginstal Java 7 JRE dan membuatnya bekerja di Terminal: stackoverflow.com/a/19582689/346286
analog

Jawaban:

279

Mavericks baru (10.9) menunjukkan kepada saya "Meminta menginstal", tetapi tidak ada yang terjadi.

Solusinya adalah secara manual mengunduh dan menginstal paket Java resmi untuk OS X, yang ada di Java untuk OS X 2013-005.

Pembaruan: Seperti yang disebutkan dalam komentar di bawah, ada versi yang lebih baru dari paket yang sama:

Java untuk OS X 2014-001

Java untuk OS X 2014-001 (Mengoreksi tenggat waktu di atas)

Java untuk OS X 2014-001 mencakup peningkatan instalasi, dan menggantikan semua versi Java sebelumnya untuk OS X. Paket ini menginstal versi Java 6 yang sama yang termasuk dalam Java untuk OS X 2013-005.

Orang
sumber
Sama untuk ku. Pilihan lain adalah menginstal Java dari Oracle. Kalian pikir mana yang lebih baik? Oracle tampaknya memperbarui Java lebih cepat dari Apple.
Ngoc Pham
2
tapi yang ini memberi Anda JDK 6. bagaimana kita bisa menggunakan JDK 6 secara langsung?
Shawn
2
@Shawn Apple menonaktifkan sudah menginstal JDK 7. Tapi Anda bisa mendapatkan beberapa FAQ dan instal dari sini: java.com/en/download/faq/java_mac.xml tetapi saya tidak mencobanya.
Guy
Jika Anda telah menginstal java6 dan java7, Anda dapat memilih v6 di shell Anda dengan: export JAVA_HOME = / System / Library / Java / JavaVirtualMachines / 1.6.0.jdk / Contents / Beranda
Jürgen Strobel
1
Mengapa Anda ingin menggunakan java 32 bit pada OS 64bit? 64 bit java sebenarnya lebih cepat dari 32bit di bawah Mavericks.
MiB
196

Jika Anda hanya ingin menginstal JRE resmi terbaru dari Oracle, Anda bisa mendapatkannya di sana, instal, dan ekspor JAVA_HOME baru di terminal.

  • Buka Terminal Anda
  • java -version memberi Anda kesalahan dan sembulan
  • Dapatkan JRE dmg di http://www.oracle.com/technetwork/java/javase/downloads/index.html
  • Pasang itu
  • Di terminal Anda, ketik: export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"
  • java -version sekarang memberimu java version "1.7.0_45"

Itulah cara terbersih yang saya temukan untuk menginstal JRE terbaru.

Anda dapat menambahkan export JAVA_HOMEbaris di .bashrcuntuk memiliki javasecara permanen di Terminal Anda:

echo export JAVA_HOME=\"/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home\" >> ~/.bashrc
analog
sumber
37
Saya pikir kedengarannya agak mencurigakan untuk JAVA_HOMEmenunjuk ke apa yang jelas-jelas plugin browser bukannya VM nyata. Ketika Anda menginstal alat baris perintah XCode, Anda mendapatkan alat untuk mendapatkan jalur yang benar /usr/libexec/java_home,. Lihat developer.apple.com/library/mac/documentation/Darwin/Reference/… .
Ilkka
8
@ Ikka - memang terdengar mencurigakan, tapi di situlah sebenarnya JRE Oracle diinstal. Java Apple (yang berhenti di java 6) tidak bercampur dengan oracle sebaik yang diinginkan
Orion Edwards
12
Seorang kolega saya (yang sayangnya tidak memiliki reputasi yang diperlukan di sini untuk menambahkan komentar) ingin menambahkan bahwa pengaturan JAVA_HOME seharusnyaexport JAVA_HOME="/Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents/Home"
Stephan Windmüller
1
Saya menginstal jdk7u45 dari Oracle dan masih menggunakan ekspor JAVA_HOME = $ (/ usr / libexec / java_home) di profil bash saya. jdk7u45 bekerja sangat baik termasuk panel preferensi sistem java. Sekarang saya meningkatkan ke jdk7u51.
MiB
2
Saya harus menambahkan export JAVA_HOME="/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home"ke ~ / .profile daripada ~ / .bashrc atau ~ / .bash_profile untuk mendapatkan pekerjaan ini.
LarS
64

Tempat yang tepat untuk mengunduh JDK untuk Java 7 adalah Java SE Downloads .

Semua link lain yang disediakan di atas, sejauh yang saya tahu, baik memberikan JRE atau Java 6 download (kebetulan, jika Anda ingin menjalankan Eclipse atau IDE lainnya, seperti IntelliJ IDEA , Anda akan membutuhkan JDK, tidak dengan JRE ).

Mengenai IntelliJ IDEA - yang masih akan meminta Anda untuk menginstal Java 6 karena tampaknya membutuhkan pemuat kelas yang lebih lama atau semacamnya: cukup ikuti instruksi ketika pop-up dialog muncul dan itu akan menginstal JDK 6 di tempat yang tepat.

Setelah itu, Anda perlu melakukan yang sudo ln -snfdisebutkan dalam jawaban di atas:

sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents \
    /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

(disalin di sini seperti yang disebutkan bahwa "di atas" pada akhirnya mungkin tidak masuk akal karena jawaban diurutkan ulang).

Saya juga mengatur saya JAVA_HOMEuntuk menunjuk ke tempat jdk_1.7.0_xx.jdkdiinstal:

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

Kemudian tambahkan itu ke PATH:

export PATH=$JAVA_HOME/bin:$PATH

Alternatifnya adalah dengan bermain-main dengan labirin hyperlink gila, tetapi sejujurnya hidup ini terlalu singkat untuk diganggu.

Marco Massenzio
sumber
4
Lihat komentar saya untuk jawaban lain tentang apa yang mungkin merupakan cara yang lebih baik untuk mendapatkan jalan itu.
Ilkka
1
Karena jawaban ini memiliki lebih banyak suara, bit yang mengatakan sudo ln -snfdalam jawaban di atas tidak akurat lagi. Itu sebenarnya merujuk pada jawaban oleh Tuan Ronald
Karthic Raghupathi
@KarthicRaghupathi Saya tidak yakin saya sepenuhnya memahami komentar (penggunaan thisdan thatagak membingungkan) tetapi Anda masih memerlukan symlink dari tempat / Sytem / Library / etc ke tempat aktual di mana Oracle menginstal JVM (/ Library / etc .) atau aplikasi tidak dapat menemukan runtime Java.
Marco Massenzio
@ Marsco Sekarang Anda menyebutkannya, ketika saya membaca komentar saya sendiri, itu tidak masuk akal. :) Izinkan saya mengklarifikasi. Dalam jawaban Anda, Anda menulis "Setelah itu, Anda harus melakukan yang sudo ln -snfdisebutkan dalam jawaban di atas;". Jawaban naik atau turun berdasarkan jumlah suara yang mereka dapatkan. Maksud saya adalah hanya memberikan referensi langsung ke jawaban yang memiliki sudo ln -snfperintah.
Karthic Raghupathi
Diedit - tetapi tidak benar-benar yakin bahwa pemesanan ulang benar-benar terjadi: mereka semua tampaknya berada di tempat mereka berada, terlepas dari upvote. NVM
Marco Massenzio
14

Saya mengunduh dan menginstal JDK 1.7 dari Oracle . Di konsol / di Terminal Java 7 berfungsi dengan baik.

Ketika saya memulai program Java (seperti Eclipse ) melalui GUI, saya mendapatkan:

Untuk membuka "Eclipse.app" Anda memerlukan runtime Java SE 6. Apakah Anda ingin menginstalnya sekarang?

Karena saya tidak ingin menginstal versi Java lama, saya menggunakan solusi berikut ini:

sudo ln -nsf /Library/Java/JavaVirtualMachines/jdk1.7.0_45.jdk/Contents /System/Library/Frameworks/JavaVM.framework/Versions/CurrentJDK

Kredit ke monkehWorks .

Tuan Ronald
sumber
1
Saya perlu digunakan ln -snfkarena aku Operation not permitteddenganln -sf
Lars Blumberg
Terima kasih, saya mengedit jawabannya dan menambahkan opsi -n ke perintah ln.
Tn. Ronald
+1 Persis apa yang saya cari. Terima kasih! CLI mendapatkan referensi ke JDK 7 setelah instalasi. Namun untuk mendapatkan aplikasi GUI untuk mengambil JDK yang benar, langkah ini diperlukan.
Karthic Raghupathi
Penuh harapan, tetapi itu tidak berhasil bagi saya. Android Studio 0.3.2 bersikeras "mengunduh Java 6" yang tidak akan saya lakukan. Oracle Java 7 JDK diinstal.
akauppi
Anda memerlukan Eclipse versi 64-bit. 32-bit membutuhkan Apple java.
Thorbjørn Ravn Andersen
4

Kesalahan ini terjadi karena file plist IntelliJ IDEA memerlukan Java versi 1.6 *. Untuk mengatasi masalah ini, ganti 1.6 * dengan 1.8 *.

<key>JVMOptions</key>
<dict>
    <key>ClassPath</key>
      ...

    <key>JVMVersion</key>
    <string>1.8*</string>

    <key>MainClass</key>
    <string>com.intellij.idea.Main</string>
    <key>Properties</key>
<dict>
Fabio Fumarola
sumber
Ini berhasil untuk saya. Masalah saya adalah ketika saya memperbarui ke osx 10.9, saya masih bisa mengakses java dari terminal dan yang lainnya (termasuk eclipse bekerja dengan baik). Hanya Android Studio yang menyebabkan kesalahan ini.
ucsunil
Ini tidak berfungsi untuk saya pada OS X 10.10.1, ia mengeluh bahwa tidak ada versi 1.8 yang tersedia (bahkan jika JRE 8 diinstal dengan benar).
Emmanuel Bourg
Apakah Anda memeriksa apakah JAVA_HOME diatur?
Fabio Fumarola
3

OP menyiratkan bahwa Java 7 adalah kebutuhan. Dan Java 6 sebenarnya tidak lagi 'didukung' jadi 7 adalah versi yang harus Anda instal pada saat ini kecuali Anda memiliki masalah aplikasi warisan.

Anda bisa mendapatkannya di sini: http://java.com/en/download/mac_download.jsp?locale=en

Rondo
sumber
Kita tidak boleh berasumsi bahwa distribusi Java 6 Apple saat ini tidak didukung.
Graham Perrin
Saya menempatkan kata 'didukung' di tanda kutip untuk menghindari mencoba untuk mengatasi masalah yang rumit. Oracle memungut biaya untuk dukungan apa pun dari 6 ... dan bahwa biaya dukungan akan berlaku secara logis untuk Apple, juga; jadi, Apple 'sendiri' tanpa kontrak. Apakah mereka memilikinya, dan berencana untuk bekerja melalui tambalan untuk MacOSX? Apakah kontrak masih memungkinkan distribusi ulang? Sekarang telah ada 2 pembaruan Java 7 dari Oracle sejak pembaruan terakhir Apple ke 6. Secara historis, mereka cenderung mengunci rilis. Asumsi, mungkin; Asumsi yang aman? Kelihatannya begitu.
Rondo
3

Pengalaman saya untuk memperbarui Java SDK pada OS X 10.9 jauh lebih mudah.

Saya mengunduh yang terbaru Java SE Development Kit 8, dari SE unduhan dan menginstal file .dmg. Dan saat mengetik java -versionterminal berikut ini ditampilkan:

versi java "1.8.0_11"

Java (TM) SE Runtime Environment (build 1.8.0_11-b12)

Java HotSpot (TM) 64-Bit Server VM (build 25.11-b03, mode campuran)

Muhammad Reda
sumber
1

Dari OP:

Saya akhirnya menginstal ulang dari Java untuk OS X 2013-005. Itu memecahkan masalah ini.

Eric Leschinski
sumber
1

Kesalahan ini berarti Java tidak diinstal dengan benar.

1) brew cask install java (No need to install cask separately it comes with brew)

2) java -version

java version "1.8.0_131"
Java(TM) SE Runtime Environment (build 1.8.0_131-b11)

PS - Apa itu brew-tong? Homebrew-Cask memperluas Homebrew, dan menyelesaikan kerumitan mengeksekusi perintah tambahan - "Untuk menginstal, seret ikon ini ..." setelah menginstal Aplikasi menggunakan Homebrew .

NB - Masalah ini tidak spesifik untuk Mavericks, Anda akan mendapatkannya hampir semua OS X, termasuk EL Capitan.

lemah
sumber
0

Tidak perlu menginstal JDK, yang merupakan kit pengembang , hanya JRE yang merupakan lingkungan runtime .

dmz
sumber
6
Itu benar. Namun, yang disediakan Apple adalah JDK dan JRE dari Oracle ada di sana untuk Plugin Internet, javaperintahnya tidak ditautkan ke seluruh sistem secara otomatis sehingga Anda masih melihat "Tidak ada runtime Java yang ada, meminta instalasi." saat Anda mengetik java -versiondi Terminal.
Ngoc Pham