Karena pembaruan kebijakan Roadmap Dukungan Oracle Java SE baru-baru ini (akhir dari $ rilis pembaruan gratis dari Oracle setelah Maret 2019 khususnya), saya telah mencari alternatif untuk Oracle Java. Saya telah menemukan bahwa OpenJDK adalah alternatif open-source. Dan saya telah menemukan AdoptOpenJDK , sekarang dikenal sebagai Adoptium, yang merupakan biner prebuilt . Ini teka-teki.
Apa perbedaan antara OpenJDK dan Adoptium / AdoptOpenJDK?
Jawaban:
Pendeknya:
Penjelasan:
Prebuilt OpenJDK (atau distribusi) - binari, dibangun dari http://hg.openjdk.java.net/ , disediakan sebagai arsip atau pemasang, yang ditawarkan untuk berbagai platform, dengan kemungkinan kontrak dukungan.
OpenJDK, repositori sumber (juga disebut proyek OpenJDK ) - adalah repositori open source berbasis Mercurial , yang dihosting di http://hg.openjdk.java.net . Kode sumber Java. Sebagian besar fitur Java (dari VM dan pustaka inti ke kompiler) hanya didasarkan pada repositori sumber ini. Oracle memiliki garpu pengganti untuk ini.
OpenJDK, distribusinya (lihat daftar penyedia di bawah ini) - gratis seperti bir dan jenis gratis seperti dalam pidato , tetapi, Anda tidak bisa memanggil Oracle jika Anda memiliki masalah dengan itu. Tidak ada kontrak dukungan. Selain itu, Oracle hanya akan merilis pembaruan untuk versi OpenJDK (distribusi) jika rilis itu adalah rilis Java terbaru, termasuk rilis LTS (dukungan jangka panjang). Pada hari Oracle merilis OpenJDK (distribusi) versi 12.0, bahkan jika ada masalah keamanan dengan OpenJDK (distribusi) versi 11.0, Oracle tidak akan merilis pembaruan untuk 11.0. Dikelola sepenuhnya oleh Oracle.
Beberapa proyek OpenJDK - seperti OpenJDK 8 dan OpenJDK 11 - dikelola oleh komunitas OpenJDK dan menyediakan rilis untuk beberapa versi OpenJDK untuk beberapa platform. Anggota masyarakat telah mengambil tanggung jawab untuk merilis perbaikan untuk kerentanan keamanan dalam versi OpenJDK ini.
AdoptOpenJDK, distribusinya sangat mirip dengan distribusi OpenJDK Oracle (dalam hal ini gratis, dan itu adalah build yang diproduksi dengan mengkompilasi sumber dari repositori sumber OpenJDK). AdoptOpenJDK sebagai entitas tidak akan membuat backport patch, yaitu tidak akan ada 'fork / versi' AdoptOpenJDK yang secara material berbeda dari hulu (kecuali untuk beberapa patch skrip build untuk hal-hal seperti dukungan Win32). Artinya, jika anggota komunitas (Oracle atau yang lain, tetapi bukan AdoptOpenJDK sebagai entitas) perbaikan keamanan backport ke pembaruan versi OpenJDK LTS, maka AdoptOpenJDK akan menyediakan pembangunan untuk itu. Dikelola oleh komunitas OpenJDK.
OracleJDK - adalah distribusi lain. Dimulai dengan JDK12 tidak akan ada versi gratis dari OracleJDK. Tawaran distribusi JDK Oracle ditujukan untuk dukungan komersial. Anda membayar untuk ini, tetapi kemudian Anda bisa mengandalkan Oracle untuk dukungan. Tidak seperti penawaran OpenJDK Oracle, OracleJDK hadir dengan dukungan yang lebih lama untuk versi LTS. Sebagai pengembang, Anda bisa mendapatkan lisensi gratis untuk penggunaan pribadi / pengembangan hanya dari JDK khusus ini, tetapi itu sebagian besar ikan haring merah, karena 'hanya biner' pada dasarnya sama dengan biner OpenJDK. Saya kira itu berarti Anda dapat mengunduh versi JDK LTS yang ditambal keamanan dari situs web Oracle selama Anda berjanji untuk tidak menggunakannya secara komersial.
Catatan . Mungkin yang terbaik untuk menyebut build OpenJDK oleh Oracle adalah "Oracle OpenJDK builds".
Donald Smith, manajer produk Java di Oracle menulis :
Penyedia dan Perbandingan OpenJDK
Bangun Gratis dari Sumber - kode sumber distribusi tersedia untuk umum dan orang dapat mengumpulkan bangunannya sendiri
Distribusi Biner Gratis - binari distribusi tersedia untuk umum untuk diunduh dan digunakan
Perpanjangan Pembaruan - alias LTS (dukungan jangka panjang) - Pembaruan Publik di luar siklus rilis 6 bulan
Dukungan Komersial - beberapa penyedia menawarkan pembaruan terkini dan dukungan pelanggan kepada pelanggan yang membayar, misalnya Oracle JDK ( detail dukungan )
Lisensi Permisif - lisensi distribusi tidak protektif, mis. Apache 2.0
Distribusi Java mana yang harus saya gunakan?
Pada zaman Sun / Oracle, biasanya Sun / Oracle yang memproduksi distribusi JDK hilir milik berdasarkan sumber OpenJDK. Baru-baru ini, Oracle telah memutuskan untuk melakukan pembangunan sendiri hanya dengan dukungan komersial terlampir. Mereka dengan ramah mempublikasikan bangunan OpenJDK di situs https://jdk.java.net/ mereka .
Apa yang terjadi mulai JDK 11 adalah pergeseran dari pola pikir vendor tunggal (Oracle) ke pola pikir di mana Anda memilih penyedia yang memberi Anda distribusi untuk produk, di bawah kondisi yang Anda sukai: platform yang mereka bangun, frekuensi dan kecepatan rilis. , bagaimana dukungan terstruktur, dll. Jika Anda tidak mempercayai vendor yang ada, Anda bahkan dapat membangun OpenJDK sendiri.
Setiap build OpenJDK biasanya dibuat dari repositori sumber upstream asli yang sama (OpenJDK "the project"). Namun setiap build cukup unik - $ gratis atau komersial, bermerek atau tidak bermerek, murni atau dibundel (misalnya, BellSoft Liberica JDK menawarkan JavaFX yang dibundel, yang telah dihapus dari build Oracle mulai JDK 11).
Jika tidak ada lingkungan (misalnya, Linux) dan / atau persyaratan lisensi menentukan distribusi tertentu dan jika Anda menginginkan JDK build paling standar , maka mungkin pilihan terbaik adalah menggunakan OpenJDK oleh Oracle atau AdoptOpenJDK.
Informasi tambahan
Saatnya melihat melampaui JDK Oracle oleh Stephen Colebourne
Java Masih Gratis oleh komunitas Java Champions (diterbitkan pada 17 September 2018)
Java masih gratis 2.0.0 oleh komunitas Java Champions (diterbitkan pada 3 Maret 2019)
Aleksey Shipilev tentang JDK memperbarui wawancara dengan Opsian (diterbitkan pada 27 Juni 2019)
sumber
Pembaruan: AdoptOpenJDK telah mengubah namanya menjadi Adoptium , sebagai bagian dari kepindahannya ke Eclipse Foundation .
OpenJDK ➙ kode sumber
Adoptium / AdoptOpenJDK ➙ builds
Yang pertama menyediakan kode sumber , yang lain menyediakan build dari kode sumber itu.
Beberapa vendor Java & OpenJDK
Adoptium dari Eclipse Foundation , yang sebelumnya dikenal sebagai AdoptOpenJDK , hanya satu dari beberapa vendor yang mendistribusikan implementasi platform Java. Ini termasuk:
Lihat bagan alur saya ini untuk membantu memandu Anda dalam memilih vendor untuk implementasi platform Java. Klik / ketuk untuk memperbesar.
Sumber daya lain: Matriks perbandingan oleh Azul Systems ini bermanfaat, dan tampaknya benar dan adil bagi saya.
Berikut adalah daftar pertimbangan dan motivasi untuk dipertimbangkan dalam memilih vendor dan implementasi.
Beberapa vendor menawarkan Anda pilihan teknologi JIT .
Untuk memahami lebih lanjut tentang ekosistem Java ini, baca Java Is Still Free
sumber