Menurut blog oracle, Oracle JDK Rilis untuk Java 11 dan Selanjutnya
Dimulai dengan Java 11, Oracle akan memberikan rilis JDK di bawah open source GNU General Public License v2, dengan Classpath Exception (GPLv2 + CPE) , dan di bawah lisensi komersial untuk mereka yang menggunakan Oracle JDK sebagai bagian dari produk atau layanan Oracle, atau yang tidak ingin menggunakan perangkat lunak sumber terbuka. Kombinasi penggunaan lisensi sumber terbuka dan lisensi komersial menggantikan lisensi " BCL " historis , yang memiliki kombinasi persyaratan komersial gratis dan berbayar.
Build yang berbeda akan disediakan untuk setiap lisensi, tetapi build ini identik secara fungsional selain dari beberapa perbedaan kosmetik dan kemasan, dijelaskan secara rinci di bawah ini.
Dari BCL ke GPL
The Binary Kode Lisensi untuk teknologi Oracle Java SE ( “BCL”) telah lisensi utama untuk teknologi Oracle Java SE selama lebih dari satu dekade. BCL mengizinkan penggunaan tanpa biaya lisensi dalam kondisi tertentu. Untuk menyederhanakan hal-hal yang bergerak maju, Oracle mulai menyediakan OpenJDK berlisensi open source berlisensi Java 9, menggunakan model lisensi yang sama dengan platform Linux. Jika Anda terbiasa mendapatkan binari Oracle Java SE secara gratis, Anda dapat terus melakukannya dengan OpenJDK Oracle yang tersedia di jdk.java.net . Jika Anda terbiasa mendapatkan binari Oracle Java SE sebagai bagian dari produk atau layanan komersial dari Oracle, maka Anda dapat terus mendapatkan rilis Oracle JDK melalui Dukungan My Oracle (MOS), dan lokasi lainnya.
Secara fungsional identik dan dapat ...
JDK berlisensi BCL Oracle secara historis berisi "fitur komersial" yang tidak tersedia di OpenJDK build. Namun seperti yang dijanjikan , selama setahun terakhir Oracle telah menyumbangkan fitur-fitur ini ke Komunitas OpenJDK, termasuk:
Dari Java 11 maju, oleh karena itu, Oracle JDK membangun dan OpenJDK membangun pada dasarnya akan identik.
... namun dengan beberapa perbedaan kosmetik dan kemasan
Masih ada sejumlah kecil perbedaan, beberapa disengaja dan kosmetik, dan beberapa hanya karena lebih banyak waktu untuk berdiskusi dengan kontributor OpenJDK diperlukan.
- Oracle JDK 11 memancarkan peringatan saat menggunakan opsi -XX: + UnlockCommercialFeatures, sedangkan di OpenJDK membangun opsi ini menghasilkan kesalahan. Opsi ini tidak pernah menjadi bagian dari OpenJDK dan tidak masuk akal untuk menambahkannya sekarang, karena tidak ada fitur komersial di OpenJDK. Perbedaan ini tetap untuk memudahkan pengguna Oracle JDK 10 dan rilis sebelumnya untuk bermigrasi ke Oracle JDK 11 dan yang lebih baru.
- Oracle JDK 11 dapat dikonfigurasi untuk menyediakan data log penggunaan ke alat " Advanced Management Console ", yang merupakan produk Oracle komersial yang terpisah. Kami akan bekerja dengan kontributor OpenJDK lainnya untuk membahas bagaimana data penggunaan tersebut dapat berguna dalam OpenJDK dalam rilis mendatang, jika sama sekali. Perbedaan ini tetap terutama untuk memberikan pengalaman yang konsisten kepada pelanggan Oracle sampai keputusan tersebut dibuat.
- Perintah javac --release berperilaku berbeda untuk target Java 9 dan Java 10, karena dalam rilis tersebut Oracle JDK berisi beberapa modul tambahan yang bukan bagian dari rilis OpenJDK yang sesuai:
- javafx.base
- javafx.controls
- javafx.fxml
- javafx.graphics
- javafx.media
- javafx.web
- java.jnlp
- jdk.jfr
- jdk.management.cmm
- jdk.management.jfr
- jdk.manajemen.sumber daya
- jdk.packager.services
- jdk.snmp
Perbedaan ini tetap untuk memberikan pengalaman yang konsisten untuk jenis penggunaan warisan tertentu. Modul-modul ini sekarang tersedia secara terpisah sebagai bagian dari OpenJFX , sekarang ada di OpenJDK dan Oracle JDK karena mereka adalah fitur komersial yang dikontribusikan oleh Oracle ke OpenJDK (misalnya, Flight Recorder), atau dihapus dari Oracle JDK 11 (misalnya, JNLP) .
- Output dari perintah java --version dan java -fullversion akan membedakan Oracle JDK build dari OpenJDK builds, sehingga tim pendukung dapat mendiagnosis masalah apa pun yang mungkin ada. Secara khusus, menjalankan java --version dengan Oracle JDK 11 menghasilkan hasil di:
java 11 2018-09-25
Java (TM) SE Runtime Environment 18.9 (build 11 + 28)
Java HotSpot (TM) 64-Bit Server VM 18.9 (build 11 + 28, mode campuran)
Dan untuk build OpenJDK 11:
versi openjdk "11" 2018-09-25
OpenJDK Runtime Environment 18.9 (build 11 + 28)
OpenJDK 64-Bit Server VM 18.9 (build 11 + 28, mode campuran)
- Oracle JDK selalu mengharuskan penyedia kriptografi pihak ketiga untuk ditandatangani oleh sertifikat yang dikenal. Kerangka kriptografi di OpenJDK memiliki antarmuka kriptografi terbuka, artinya tidak membatasi penyedia mana yang dapat digunakan. Oracle JDK 11 akan terus membutuhkan tanda tangan yang valid, dan build Oracle OpenJDK akan terus mengizinkan penggunaan tanda tangan yang valid atau penyedia kripto pihak ketiga yang tidak ditandatangani.
- Oracle JDK 11 akan terus menyertakan installer, branding, dan pengemasan JRE untuk pengalaman yang konsisten dengan penggunaan desktop lama. Build Oracle OpenJDK saat ini tersedia sebagai file zip dan tar.gz, sementara format distribusi alternatif sedang dipertimbangkan.