Tentang Oracle JDK 11+ (lisensi dan distribusi)

Kemarin, terjemahan dari posting "Jangan jatuh ke dalam perangkap menggunakan Oracle JDK 11" dengan diskusi selanjutnya tentang "Java berbayar" diterbitkan di HabrΓ©, tetapi tidak semuanya menakutkan seperti yang terlihat pada pandangan pertama - di bawah ini adalah terjemahan publikasi dari blog Oracle dengan posisi resmi untuk lisensi dan distribusi JDK versi 11+.

Ringkasan


Dimulai dengan Java 11, Oracle akan merilis JDK di bawah 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 open source. perangkat lunak. Kombinasi lisensi OS dan komersial ini menggantikan BCL (Oracle Binary Code Licence) yang lama, yang terdiri dari ketentuan penggunaan komersial dan gratis.

Rakitan terpisah akan disediakan untuk setiap lisensi, tetapi rakitan ini akan identik secara fungsional , kecuali untuk beberapa perbedaan kosmetik dan perbedaan dalam cara paket biner, dijelaskan secara rinci di bawah ini.

Dari BCL ke GPL


Lisensi BCL untuk Oracle Java SE telah digunakan untuk melisensikan teknologi Oracle Java SE selama lebih dari 10 tahun. Dalam kondisi tertentu BCL mengizinkan penggunaan tanpa royalti. Untuk menyederhanakan pekerjaan lebih lanjut, dimulai dengan Java 9, Oracle mulai menyediakan perangkat OpenJDK di bawah lisensi OS yang digunakan oleh platform Linux (kernel Linux didistribusikan di bawah lisensi GNU GPLv2) . Jika Anda terbiasa menggunakan binari Oracle Java SE secara gratis, Anda dapat terus melakukan ini dengan binari OpenJDK yang tersedia di jdk.java.net. Jika Anda terbiasa menggunakan binari Oracle Java SE sebagai bagian dari produk atau layanan komersial Oracle, maka Anda dapat terus menerima rilis Oracle JDK melalui My Oracle Support (MOS) atau di tempat lain.

Identik secara fungsional dan bergantian ...


Oracle JDK yang berlisensi BCL secara historis berisi "fitur komersial" yang tidak tersedia di OpenJDK build. Seperti yang dijanjikan, selama setahun terakhir, Oracle telah menambahkan fitur-fitur ini ke OpenJDK, termasuk:


Oleh karena itu, dimulai dengan Java 11 dan kemudian, Oracle JDK dan OpenJDK rakitan pada dasarnya akan identik.

... tetapi dengan beberapa perbedaan kosmetik dan kemasan


Masih ada sejumlah kecil perbedaan, beberapa disengaja dan kosmetik, dan beberapa hanya memerlukan lebih banyak waktu untuk berdiskusi dengan kontributor OpenJDK.

  • Oracle JDK 11 menampilkan peringatan ketika menggunakan opsi -XX:+UnlockCommercialFeatures , sedangkan di OpenJDK opsi ini akan menghasilkan kesalahan. Opsi ini tidak pernah menjadi bagian dari OpenJDK, jadi tidak masuk akal untuk menambahkannya, karena tidak ada fitur komersial di OpenJDK. Perbedaan ini tetap membuatnya lebih mudah bagi pengguna Oralce JDK 10 atau lebih lama untuk meningkatkan ke Oracle JDK 11 atau lebih baru.
  • Oracle JDK 11 dapat dikonfigurasi untuk menyediakan data log ke Advanced Management Console , produk Oracle komersial yang terpisah. Kami akan bekerja dengan kontributor OpenJDK lainnya tentang perlunya menyediakan data tersebut dan manfaatnya di OpenJDK dalam versi mendatang. Perbedaan ini tetap terutama untuk mempertahankan pengalaman yang diperoleh oleh pelanggan Oracle.
  • Perintah javac --release berperilaku berbeda untuk Java 9 dan Java 10, karena dalam versi ini Oracle JDK berisi beberapa komponen tambahan yang bukan bagian dari versi yang sesuai dari OpenJDK:
    • 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 mempertahankan kompatibilitas dalam beberapa kasus warisan. Modul-modul ini sekarang tersedia secara terpisah sebagai bagian dari OpenJFX, atau hadir di OpenJDK dan Oracle JDK, karena mereka adalah fitur komersial yang ditambahkan Oracle ke OpenJDK, atau telah dihapus dari Oracle JDK 11 (mis. JNLP).
  • Output dari perintah java --version dan java -fullversion akan berbeda antara Oracle JDK dan OpenJDK builds sehingga tim pendukung dapat mendiagnosis masalah yang muncul. Secara khusus, menjalankan java --version dengan Oracle JDK 11 build akan menampilkan:
    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 dengan 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 menandatangani dengan sertifikat yang terkenal. Kriptografi di OpenJDK memiliki antarmuka terbuka, yang berarti bahwa tidak ada batasan pada penyedia kripto yang digunakan. Oracle JDK 11 akan terus membutuhkan tanda tangan yang valid, dan majelis OpenJDK akan terus mengizinkan penggunaan penyedia kripto pihak ketiga, baik dengan tanda tangan yang valid dan tanpa tanda tangan.
  • Oracle JDK 11 akan terus menyertakan installer, branding, dan JRE untuk kompatibilitas dengan aplikasi desktop lama. Rakitan OpenJDK sekarang tersedia sebagai file zip dan tar.gz, sementara format alternatif untuk distribusi sedang dipertimbangkan.

Apa yang kita sebut mereka?


Idealnya, kami dapat merujuk semua majelis Oracle JDK sebagai β€œOracle JDK,” baik di bawah GPL atau di bawah lisensi komersial, tergantung pada situasi Anda. Namun, karena alasan historis, walaupun ada sedikit perbedaan, kami akan merujuknya secara terpisah: OpenJDK dan Oracle JDK.

Source: https://habr.com/ru/post/id424725/


All Articles