Bagaimana cara menggunakan JDK 7 di Mac OSX?

107

Saya ingin menggunakan WatchService API seperti yang disebutkan di tautan ini: http://download.oracle.com/javase/tutorial/essential/io/notification.html

Setelah membaca, saya menemukan bahwa WatchService adalah bagian dari kelas NIO yang dijadwalkan untuk JDK 7. Jadi, ini dalam bentuk beta. Tidak apa-apa.

http://jdk7.java.net/download.html memiliki JDK yang saya unduh dan ekstrak. Saya mendapat banyak folder. Saya tidak tahu apa yang harus saya lakukan dengan mereka.

Kemudian, saya membaca lebih banyak lagi dan menemukan bahwa sekelompok orang baik membuat JDK 7 sebagai biner sehingga orang seperti saya dapat menginstalnya dengan mudah. Ini disebut Open JDK: http://code.google.com/p/openjdk-osx-build/

Jadi, saya mengunduh file .dmg dan menginstalnya. Kemudian saya membuka "Preferensi Java" dan melihat bahwa OpenJDK7 tersedia.

Jadi, sekarang saya merasa bisa mulai mencoba WatchService API. Dari tutorial di tautan pertama, penulis memberikan file .java untuk mengujinya terlebih dahulu dan memastikannya berjalan. Ini tautan ke file tersebut: http://download.oracle.com/javase/tutorial/essential/io/examples/WatchDir.java

Jadi, saya mem-boot Eclipse (sebenarnya saya menggunakan STS) dan membuat proyek Java baru dan memilih JaveSE-1.7 di "use an execution environment JRE:". Di bawah folder src, saya menyalin dan menempelkan file WatchDir.java.

Dan saya masih melihat banyak garis merah berlekuk-lekuk. Semua "import.java.nio. *" Semuanya berwarna merah dan saya tidak dapat menjalankannya sebagai aplikasi Java.

Apa yang harus saya lakukan?

okysabeni
sumber
Bisakah Anda menjalankan dan mengkompilasinya di konsol?
dmeister
Maksud Anda: $ javac WatchDir.java dan kemudian $ Java WatchDir? Saya akan mencobanya. Terima kasih! Meskipun saya ingin sekali tersedia di Eclipse IDE.
okysabeni
1
Mulai hari ini ada rilis resmi Oracle - Java SE 7u4
mmmmmm
Pastikan Anda menggunakan 64bit Eclipse. Tidak beruntung menjalankan 32bit satu di 1,7 jvm dengan opsi apa pun.
tuxSlayer
Pembaruan: Java 7 sekarang di akhir masa pakainya . Untuk beralih ke Java versi dukungan jangka panjang (LTS), lihat: Bagaimana cara menginstal Java 8 di Mac dan Mendapatkan Java 11 untuk macOS? .
Basil Bourque

Jawaban:

61

Oracle telah merilis JDK 7 untuk OS X .

Mukund
sumber
Saya akan memperbarui jawaban dengan informasi terbaru. Tolong beri tahu saya jika ini bukan jawaban yang benar. Terima kasih.
okysabeni
@Yko - lihat BasilBourque untuk info terlengkap (atau milik saya untuk Oracle JDK7 versi 4 yang pertama)
mmmmmm
12
Perhatikan bahwa untuk membuat aplikasi menggunakan Oracle Java 1.7 untuk mendukung Java 1.6 dari Apple, saya harus menjalankan /Library/Java/JavaVirtualMachines/1.7.0.jdkdan menyeret "Java SE 7" ke bagian atas daftar pada tab "Umum". Ini juga akan javacmenunjukkan versi Java 1.7 saat menjalankan terminal.
sschuberth
2
JDK7 Oracle tidak berfungsi pada Snow Leopard. Dikatakan itu hanya didukung Lion.
Sanghyun Lee
@Sangdol - Ya, implementasi Java Oracle hanya berjalan di Lion dan yang lebih baru. Seperti yang tercantum dalam jawaban saya untuk pertanyaan ini.
Basil Bourque
88

Ini adalah bagaimana saya mendapatkan 1,7 untuk bekerja dengan Eclipse. Saya harap ini membantu.

  1. Saya mengunduh JDK universal OpenJDK 1.7 terbaru (32/64 bit) dari cabang Mac OS / X dari http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
  2. menyalin jdk ke / Library / Java / JavaVirtualMachines / di sebelah default 1.6.0
  3. Di Eclipse> Preferences> Java> Installed JREs Anda menambahkan yang baru, ketik MacOS X VM, dan setel home sebagai /Library/Java/JavaVirtualMachines/1.7.0.jdk/Contents/Home dan beri nama Java SE 7 (OpenJDK)
  4. Klik Selesai
  5. Tetapkan JRE yang ditambahkan sebagai default

seharusnya itu :)

ukuran vektor
sumber
terima kasih elcipse saya benar-benar hang .. jadi saya mencoba menggunakan sdk 1.7 bekerja dengan sempurna! : =)
cV2
1
Proyek itu (openjdk-osx-build) telah ditutup dan tidak lagi menawarkan unduhan apa pun.
aroth
langkah 2 bisa saja: jalankan downladed jdk-7u40-macosx-x64.dmg dan secara otomatis akan menambahkan file ke jalur
Michal
Saat menambahkan JRE yang diinstal ke Eclipse, Eclipse juga dapat "mencari" JRE yang diinstal. Begitulah cara saya menemukan instalasi 1,7 JDK saya yang ada.
jvriesem
Perhatikan bahwa pemasang oracle jdk 1.7 akan menempatkan VM ke / Library / Java / JavaVirtualMachines / untuk Anda (Maret 2014)
Chris Thorne
55

Jawa 9, 10, 11

Bertahun-tahun yang lalu, Apple bergabung dengan OpenJDK proyek , mentransfer kode JVM khusus macOS yang sebelumnya mereka miliki sebagai sumber terbuka bebas biaya. Apple menghentikan distribusi JVM / JDK merek mereka sendiri, mengandalkan rilis merek Oracle untuk menyertakan versi untuk macOS.

Oracle baru-baru ini mengumumkan niat mereka untuk membawa rilis JVM bermerek Oracle mereka untuk menampilkan kesamaan dengan proyek OpenJDK, dengan basis kode yang hampir sama. Perusahaan bahkan menyumbangkan alat komersial mereka sebelumnya, Flight Recorder & Mission Control , ke proyek OpenJDK. Ini adalah bagian dari peralihan ke rencana baru "kereta rilis" untuk pembuatan versi Java dan OpenJDK yang telah dijadwalkan. Khususnya, periode pembaruan publik gratis sekarang dipersingkat. Lihat pengumuman 2017-09 ini dan postingan ini oleh Mark Reinhold .

Sebagai hasil dari semua ini, pengguna macOS di Java memiliki pilihan vendor untuk implementasi Java. Pada titik ini, setidaknya tiga sumber didasarkan pada OpenJDK untuk macOS:

  • Rilis Oracle dari JDK dan JRE, dengan dukungan berbayar opsional.
  • Azul Systems merilis:
    • Garis Zulu JVM gratis dengan dukungan berbayar opsional.
    • Garis Zing JVM komersial dengan fitur khusus seperti pengumpul sampah alternatif.
  • Kode sumber OpenJDK , gulirkan kompilasi & instalasi Anda sendiri (mungkin tidak praktis bagi kebanyakan dari kita).

Sementara itu, IBM mendonasikan kode untuk JVM ke Eclipse Foundation, yang sekarang ditempatkan di proyek OpenJ9 . Saya ingin tahu apakah mereka mungkin mendukung rilis macOS juga, meskipun terlalu dini untuk diceritakan.

Secara pribadi, saya saat ini menggunakan rilis Zulu Java 10.0.1 dari Azul di macOS High Sierra dengan IntelliJ 2018.2 untuk menghasilkan aplikasi web yang didukung Java dengan Vaadin .

Instalasi / Penghapusan

Baik Oracle dan Azul menyediakan installer yang sangat mudah digunakan untuk menginstal JVM / JDK di Mac Anda. Verifikasi instalasi Anda dengan menggunakan Terminal.app (atau yang setara) untuk mengetik dan menjalankan:

java -version

Anda akan menemukan instalasi Java di folder ini di tingkat root drive Anda (bukan di folder rumah Anda):

/ Library / Java / JavaVirtualMachines

Setiap versi dari setiap vendor ditemukan di sana, dalam folder bertingkat berlabel. Anda dapat menghapus instalasi apa pun hanya dengan menghapus folder bersarang untuk versi itu dan memberikan kata sandi sistem Anda saat diminta.

Jawa 8

Anda dapat mengunduh Java Development Kit (JDK) untuk Java 8 untuk versi Mac OS X yang didukung :

  • Singa Gunung (10.8.3+)
  • Mavericks (10.9)
  • Yosemite (10.10)
  • El Capitan (10.11)

Setiap versi JVM yang Anda instal dapat ditemukan di sini:

/Library/Java/JavaVirtualMachines

Untuk instruksi lebih lanjut dan FAQ, lihat Panduan Oracle ini .

Jawa 7

Untuk setiap rilis Java 7 sejak Pembaruan 4, versi Mac telah siap di samping platform lain. Berjalan di Mac dengan perangkat keras 64-bit di Lion (10.7.3+), Mountain Lion (10.8.3+), dan Mavericks (10.9.x).

Oracle mengumumkan rilis resmi JDK untuk Java SE 7 Update 4 di Mac OS X (Lion), pada 2012-04-26. Tidak perlu lagi trik yang dibahas di halaman ini.

Instalasi sederhana sesuai instruksi ini :

  1. Unduh dari tempat biasa di situs web Oracle.
  2. Pasang DMG.
  3. Jalankan penginstal.

Rilis ini memiliki beberapa batasan, terutama kurangnya dukungan untuk Java Web Start dan Plugin Java untuk browser web. Dukungan itu diharapkan akhir tahun ini.

Setelah menginstal, baca JDK untuk Mac ReadMe. Yang terpenting, jika Anda ingin Java 7 menjadi default, seret ke bagian atas daftar di aplikasi Preferensi Java yang ada di folder Utilities Anda.

Mac OS X dengan mudah mendukung banyak JVM secara bersamaan. Masing-masing sekarang ditemukan di sini:

/Library/Java/JavaVirtualMachines

Selamat kepada tim Apple & Oracle atas pencapaian mereka. Geek ini senang melihat Mac OS X terdaftar sebagai " Konfigurasi Sistem Bersertifikat ".

Tip: Untuk memulai Eclipse di Mac yang hanya menginstal Java 7, buka file alias bernama eclipse, bukan file bernama Eclipse.app .

Jawa 6

Apple terus menyediakan implementasi Java 6 terbaru untuk semua versi Mac OS X hingga Mountain Lion.

Jika Anda melakukan sesuatu yang membutuhkan Java, seperti ketik "java -version" di Terminal.app, sebuah dialog akan muncul menawarkan untuk menginstal Java untuk Anda. Jika Anda menerima, penginstalan terjadi secara otomatis serupa dengan "Pembaruan Perangkat Lunak" lainnya dari Apple.

Anda akan menemukan Java terpasang di lokasi ini, berbeda dari Java 7 & 8:

/System/Library/Java/JavaVirtualMachines

Java 6 telah mencapai akhir masa pakainya dengan Oracle sejak 2013-02 (kecuali Anda memiliki perjanjian dukungan komersial dengan Oracle). Jadi, Anda harus pindah ke Java 7 atau 8.

Menguji Versi Baru

Di Terminal.app, ketik java -versionuntuk memverifikasi versi mana yang merupakan default saat ini.

Menghapus Versi Lama

Setelah menginstal versi baru, Anda mungkin ingin mengunjungi folder yang dijelaskan di atas untuk menghapus versi lama. Pindahkan folder ke Sampah, dan berikan kata sandi Sistem Anda menyelesaikan pemindahan.


Omong-omong, Apple menyediakan milis untuk masalah teknis pengembang terkait Java di OS X.

Basil Bourque
sumber
Terima kasih, ini berhasil dengan baik untuk saya. Perlu mengubahnya dalam preferensi juga.
@Tony: Ya, mengubah Preferensi Anda disebutkan di paragraf ke-4.
Basil Bourque
Tidak berhasil. Saya menjalankan penginstal dan melaporkan "Berhasil", tetapi sepertinya tidak ada yang benar-benar diinstal. /System/Library/Java/JavaVirtualMachineshanya berisi Java 6 JDK.
aroth
4
@aroth - (a) Lihat /Library/Java/JavaVirtualMachines(bukan /System). (b) Apakah Anda membaca dokumen instalasi Oracle, the ReadMe, dan set Preferencesseperti yang dijelaskan dalam jawaban saya di atas?
Basil Bourque
1
Dengan Java 7 r21, saya melihat /Library/Java/JavaVirtualMachines/jdk1.7.0_21.jdk/. Panel Kontrol Java sekarang diakses melalui System Preferences (OSX 10.8.3)
Sofi Software LLC
17

Cara mudah untuk menginstal Java 7 di Mac adalah dengan menggunakan Homebrew , berkat plugin Homebrew Cask (yang sekarang diinstal secara default).

Jalankan perintah ini untuk menginstal Java 7:

brew cask install caskroom/versions/java7
Andrew
sumber
"Kesalahan: Tidak ada tong yang tersedia untuk ruang penyimpanan / versi / java7"
jrochkind
@jrochkind Mungkin Anda caskroom/versionssudah ketinggalan zaman? Pasti ada di sini: github.com/caskroom/homebrew-versions/blob/master/Casks/…
Andrew
@jrochkind Coba jalankan brew tap caskroom/versionssebelum menjalankan perintah instal
Andrew
@jrochkind Jika itu tidak berhasil, lihat dokumentasi tong, atau ajukan masalah: github.com/caskroom/homebrew-cask
Andrew
13

Dapatkan tong

brew tap caskroom/cask

Instal java7:

brew tap caskroom/versions
brew cask install java7

(Saya kesulitan menemukan tautan unduhan java7 di situs web oracle, karena mereka hanya "merekomendasikan" java8)

EDIT Januari 2018 (Seperti yang ditunjukkan oleh Ankur ):

Gunakan tong zulu7 . Zulu adalah build bersertifikasi OpenJDK yang diproduksi oleh Azul Systems yang seharusnya sudah ada sejak lama (mereka bahkan masih menawarkan build JDK6).

brew cask install caskroom/versions/zulu7
abe312
sumber
Jawaban yang diterima untuk pertanyaan ini sudah usang. Ini sepertinya cara terbaik untuk menginstal Java 7 hari ini.
Tim Dean
tong ini telah dihapus (lihat: github.com/caskroom/homebrew-versions/pull/3914 ). alternatif yang disarankan adalah dengan menggunakan zulu7.
Ankur
9

Saya tahu bahwa beberapa mungkin ingin memukul saya karena membuka kembali posting lama, tetapi jika Anda merasa demikian, saya hanya berharap ini dapat membantu orang lain yang mencoba mengatur JDK 7 di Mac OS (menggunakan IntelliJ).

Apa yang saya lakukan agar ini berfungsi di mesin saya adalah:

  • ikuti instruksi pada Oracle JDK7 Mac OS X Port untuk instalasi umum
  • di IntelliJ buka / buat proyek baru sehingga Anda dapat menambahkan SDK baru (File> Struktur Proyek)
  • pilih Pengaturan Platform> SDK, tekan tanda "+" (plus) untuk menambahkan SDK baru
  • pilih JSDK dan arahkan ke / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home. Jangan salah paham dengan / Users / YOUR_USERNAME / Library / Java / . Ini akan menghubungkan 4 JAR dari direktori "lib" (dt.jar, jconsole.jar, sa-jdi.jar dan tools.jar)
  • Anda juga perlu menambahkan JAR dari / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home / jre / lib (charsets.jar, jce.jar, JObjC.jar, jsse.jar, management-agent .jar, resources.jar dan rt.jar)
peter_budo
sumber
6

Mungkin saja Anda masih perlu menambahkan JDK ke Eclipse (STS). Hanya karena JDK ada di sistem, tidak berarti Eclipse tahu di mana menemukannya.

Buka Preferensi> Java> JRE Terinstal

Jika tidak ada entri untuk 1.7 JDK, tambahkan. Anda harus mengarahkan Eclipse ke tempat Anda menginstal 1.7 JDK Anda.

Jika Eclipse tidak dapat menemukan JRE yang kompatibel dengan 1.7, saya kira itu hanya menggunakan JRE default Anda, dan itu mungkin masih mengarah ke Java 1.6, yang akan menyebabkan garis berlekuk merah Anda.

Jon Quarfoth
sumber
Panggilan Bagus! Tapi saya butuh sedikit panduan lebih lanjut. Saya pergi ke bawah JRE Terinstal -> Tambah dan arahkan ke ... / jdk1.7.0 / jre dan itu menemukan banyak file JAR. Saya klik Selesai. Dengan senang hati mencoba membangun tetapi sekarang dikatakan ... / jdk1.7.0 / jre / bin / java: tidak dapat menjalankan file biner. Apa artinya?
okysabeni
Saya tidak begitu yakin. Anda dapat mencoba mengarahkan eclipse ke direktori jdk basis alih-alih direktori jre. Saya pikir begitulah biasanya saya melakukannya di Windows, meskipun saya belum pernah mematikan JDK default di Mac saya. Jika itu tidak berhasil, Anda dapat mencoba menginstal distribusi JDK 7 yang berbeda - ada beberapa yang berbeda yang tersedia di situs openjdk-osx-build, mungkin Anda mengambil yang tidak kompatibel dengan sistem Anda?
Jon Quarfoth
Saya sudah mencobanya. Ini memberi saya kesalahan "Target bukan root JDK. Perpustakaan sistem tidak ditemukan"
okysabeni
6

setelah menginstal 1.7jdk dari oracle, saya mengubah skrip bash saya untuk menambahkan:

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

dan kemudian berjalan java -versionmenunjukkan versi yang benar.

Dustin Getz
sumber
1

Instruksi oleh peter_budo bekerja dengan sempurna. Saya harus menambahkan toples di bawah / Library / Java / JavaVirtualMachines / JDK 1.7.0 Developer Preview.jdk / Contents / Home / jre / lib / ke pustaka proyek IntelliJ saya. Sekarang itu bekerja seperti pesona. Perhatikan bahwa saya tidak membutuhkan IDE saya sendiri untuk berjalan di bawah 1.7; sebaliknya, saya hanya perlu bisa mengkompilasi dan menjalankan melawan 1.7. Saya kemungkinan besar akan terus menggunakan JRE Apple untuk menjalankan IDE karena mungkin lebih stabil sehubungan dengan rutinitas grafis (Swing, AWT). Seperti OP, saya sangat tertarik untuk menguji API NIO2 baru. Sejauh ini terlihat bagus. Terima kasih, Peter.

pengguna1092781
sumber
1

Apa yang berhasil bagi saya di Lion adalah menginstal JDK7_u17 dari Oracle, kemudian mengedit ~ / .bash_profile untuk memasukkan: export JAVA_HOME = / Library / Java / JavaVirtualMachines / jdk1.7.0_13.jdk / Contents / Home

pengguna1015892
sumber
0

Saya memperbarui ke Yosemite dan Android Studio tidak akan membersihkan proyek saya atau menjalankannya di perangkat virtual atau nyata karena kesalahan berikut:

Failed to complete Gradle execution.Cause:Supplied javaHome is not a valid folder. You supplied: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home

Setelah beberapa penelitian dan pemecahan masalah, saya menemukan bahwa file JDK yang diarahkan ke "/System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home" tidak ada; semua "JavaVirtualMachines / 1.6.0.jdk / Contents / Home" tidak ada di "/ System / Library / Java". Jadi, saya menyalin "JavaVirtualMachines / 1.6.0.jdk / Contents / Home" dari "/ Library / Java /" ke "/ System / Library / Java /" dan cha ching! Saya kembali berbisnis.

bara api
sumber
0

Sekarang, Gunakan perintah

Perbarui 2020: 04

Untuk menginstal Java7 dengan homebrew run:

brew tap homebrew/cask-versions
brew cask install java7

Semoga bantuan ini.

superup
sumber