بالأمس ، تم نشر ترجمة للمنشور "لا تقع في الفخ باستخدام Oracle JDK 11" على حبري ، تليها مناقشة حول "Java pay" ، ولكن ليس كل شيء مخيفًا كما يبدو للوهلة الأولى - فيما يلي ترجمة للمنشور من مدونة Oracle مع الموقف الرسمي للترخيص والتوزيع إصدارات JDK 11+.الملخص
بدءًا من Java 11 ، ستقوم Oracle بإطلاق JDK بموجب
رخصة GNU العامة العامة الإصدار 2 ، مع استثناء Classpath (GPLv2 + CPE) وتحت رخصة تجارية لأولئك الذين يستخدمون Oracle JDK كجزء من منتجات أو خدمات Oracle ، أو الذين لا يريدون استخدام المصدر المفتوح البرمجيات. يحل هذا المزيج من ترخيص نظام التشغيل والتجاري محل
BCL القديم (ترخيص Oracle Binary Code) ، والذي يتكون من شروط الاستخدام التجارية والمجانية.
سيتم توفير تجميعات منفصلة لكل ترخيص ، ولكن هذه التجميعات ستكون
متطابقة وظيفياً ، باستثناء بعض الاختلافات والاختلافات التجميلية في طريقة تعبئة الثنائيات ، على النحو الموضح بالتفصيل أدناه.
من BCL إلى GPL
تم استخدام ترخيص BCL لـ Oracle Java SE لترخيص تقنيات Oracle Java SE لأكثر من 10 سنوات. في ظل ظروف معينة ، يسمح BCL باستخدام بدون حقوق ملكية. لتبسيط المزيد من العمل ، بدءًا من Java 9 ، بدأت Oracle في توفير تجميعات OpenJDK بموجب ترخيص نظام التشغيل المستخدم بواسطة نظام Linux
(يتم توزيع نواة Linux بموجب ترخيص GNU GPLv2) . إذا كنت معتادًا على استخدام ثنائيات Oracle Java SE مجانًا ، يمكنك ببساطة متابعة القيام بذلك باستخدام ثنائيات OpenJDK المتاحة على jdk.java.net. إذا كنت معتادًا على استخدام ثنائيات Oracle Java SE كجزء من منتجات أو خدمات Oracle التجارية ، فيمكنك الاستمرار في تلقي إصدارات Oracle JDK من خلال
My Oracle Support (MOS) أو في أي مكان آخر.
متطابقة وظيفيا وتبادلية ...
احتوى Oracle JDK المرخص من BCL تاريخياً على "ميزات تجارية" لم تكن متوفرة في إصدارات OpenJDK. كما وعد ، أضافت Oracle خلال العام الماضي هذه الميزات إلى OpenJDK ، بما في ذلك:
لذلك ، بدءًا من Java 11 والإصدارات الأحدث ، ستكون تجميعات Oracle JDK و OpenJDK متطابقة بشكل أساسي.
... ولكن مع بعض الاختلافات في مستحضرات التجميل والتغليف
لا يزال هناك عدد قليل من الاختلافات ، بعضها مقصود ومستحضرات التجميل ، وبعضها يتطلب المزيد من الوقت للمناقشة مع المساهمين في OpenJDK.
- يعرض Oracle JDK 11 تحذيرًا عند استخدام الخيار
-XX:+UnlockCommercialFeatures
، بينما في -XX:+UnlockCommercialFeatures
هذا الخيار إلى حدوث خطأ. لم يكن هذا الخيار أبدًا جزءًا من OpenJDK ، لذلك ليس من المنطقي إضافته ، حيث لا توجد ميزات تجارية في OpenJDK. يبقى هذا الاختلاف ليسهل على مستخدمي Oralce JDK 10 أو ما قبله الترقية إلى Oracle JDK 11 أو أحدث. - يمكن تكوين Oracle JDK 11 لتوفير بيانات السجل لوحدة تحكم الإدارة المتقدمة ، وهي منتج Oracle تجاري منفصل. سنعمل مع المساهمين الآخرين في OpenJDK على الحاجة إلى توفير هذه البيانات وفوائدها في OpenJDK في الإصدارات المستقبلية. يبقى هذا الاختلاف في المقام الأول للحفاظ على الخبرة التي اكتسبها عملاء Oracle.
- يتصرف
javac --release
بشكل مختلف مع Java 9 و Java 10 ، لأنه في هذه الإصدارات من Oracle JDK يحتوي على بعض المكونات الإضافية التي لم تكن جزءًا من الإصدارات المقابلة من OpenJDK:
- javafx.base
- javafx.controls
- javafx.fxml
- javafx.graphics
- javafx.media
- javafx.web
- java.jnlp
- jdk.jfr
- jdk.management.cmm
- jdk.management.jfr
- jdk.management.resource
- jdk.packager.services
- jdk.snmp
يبقى هذا التمييز للحفاظ على التوافق في بعض الحالات القديمة. هذه الوحدات متاحة الآن بشكل منفصل كجزء من OpenJFX ، أو موجودة في OpenJDK وفي Oracle JDK ، لأنها كانت وظائف تجارية أضافتها Oracle إلى OpenJDK ، أو تمت إزالتها من Oracle JDK 11 (على سبيل المثال ، JNLP). - سيكون ناتج
java -fullversion
و java -fullversion
مختلفًا بين java -fullversion
Oracle JDK و OpenJDK بحيث يمكن لفرق الدعم تشخيص أي مشاكل تنشأ. على وجه الخصوص ، سيؤدي تشغيل java --version
مع بنية Oracle JDK 11 إلى:
جافا 11 2018-09-25
Java (TM) SE Runtime Environment 18.9 (بناء 11 + 28)
Java HotSpot (TM) 64-bit Server VM 18.9 (بناء 11 + 28 ، وضع مختلط)
ومع OpenJDK 11:
إصدار openjdk "11" 2018-09-25
بيئة وقت OpenJDK 18.9 (بناء 11 + 28)
OpenJDK خادم 64 بت VM 18.9 (بناء 11 + 28 ، وضع مختلط)
- تطلب Oracle JDK دائمًا من موفري التشفير من الجهات الخارجية التوقيع بشهادة معروفة. يحتوي التشفير في OpenJDK على واجهة مفتوحة ، مما يعني أنه لا يوجد قيود على مزود التشفير المستخدم. سيستمر Oracle JDK 11 في طلب توقيع صالح ، وستستمر تجميعات OpenJDK في السماح باستخدام موفر تشفير تابع لجهة خارجية ، مع توقيع صالح وبدون توقيع.
- سيستمر Oracle JDK 11 في تضمين المثبتات والعلامات التجارية و JREs للتوافق مع تطبيقات سطح المكتب القديمة. تجميعات OpenJDK متاحة الآن كملفات مضغوطة وملفات tar.gz ، في حين يتم النظر في صيغ بديلة للتوزيع.
ماذا نسميهم؟
من الناحية المثالية ، يمكن أن نشير إلى جميع تجميعات Oracle JDK على أنها "Oracle JDKs" ، إما بموجب GPL أو بموجب ترخيص تجاري ، وفقًا لحالتك. ومع ذلك ، ولأسباب تاريخية ، في حين أن هناك اختلافات طفيفة ، فإننا سنشير إليها بشكل منفصل: OpenJDK و Oracle JDK.