JavaFX OpenJDK का हिस्सा है
JavaFX प्रोजेक्ट खुद ही ओपन सोर्स है और OpenJDK प्रोजेक्ट का हिस्सा है ।
अद्यतन दिसम्बर 2019
ओपन सोर्स जावाएफ़एक्स का उपयोग कैसे करें, इसकी वर्तमान जानकारी के लिए, https://openjfx.io पर जाएँ । इसमें एक मौजूदा JDK (जैसे एक ओपन JDK इंस्टॉलेशन ) से एक्सेस किए गए मॉड्यूलर लाइब्रेरी के रूप में JavaFX का उपयोग करने के निर्देश शामिल हैं ।
JavaFX के लिए ओपन सोर्स कोड रिपॉजिटरी https://github.com/openjdk/jfx पर है ।
लिंक किए गए स्रोत स्थान पर, आप खुले JavaFX के लिए लाइसेंस फ़ाइलें पा सकते हैं (वर्तमान में यह लाइसेंस OpenJDK: GPL + classpath अपवाद के लिए लाइसेंस से मेल खाता है)।
परियोजना के लिए विकी यहां स्थित है: https://wiki.openjdk.java.net/display/OpenJFX/Main
यदि आप खुले JavaFX का उपयोग करने के लिए एक त्वरित शुरुआत चाहते हैं, तो Belsoft Liberica JDK वितरण OpenJDK के पूर्व-निर्मित बायनेरिज़ प्रदान करता है जो (वर्तमान में) विभिन्न प्लेटफार्मों के लिए खुले JavaFX शामिल हैं।
स्व-निहित अनुप्रयोगों के रूप में वितरण के लिए, जावा 14, JEP 343: पैकेजिंग टूल को लागू करने के लिए निर्धारित किया गया है , जो "उपयोगकर्ताओं को प्राकृतिक स्थापना अनुभव देने के लिए देशी पैकेजिंग प्रारूपों का समर्थन करता है। इन प्रारूपों में शामिल हैं msi और exe पर Windows, pkg और dmg macOS। , और लिनक्स पर डिबेट और आरपीएम। ", मूल इंस्टालर और कोई अतिरिक्त प्लेटफ़ॉर्म निर्भरता (जैसे पूर्व-स्थापित जेडीके) के साथ ओपन जेएफएक्स आधारित अनुप्रयोगों की तैनाती के लिए।
पुरानी जानकारी जो समय के साथ पुरानी हो सकती है
OpenJDK रिपॉजिटरी से JavaFX का निर्माण
आप OpenJDK (जावाएफएक्स सहित) के एक खुले संस्करण को पूरी तरह से उस स्रोत से बना सकते हैं जिसकी ओरेकल जेडडीके या बंद स्रोत कोड पर कोई निर्भरता नहीं है।
अद्यतन: OpenJDK स्रोतों से पूर्व निर्मित JavaFX वितरण का उपयोग करना
जैसा कि इस प्रश्न की टिप्पणियों में और एक अन्य उत्तर में बताया गया है, डेबियन लिनक्स वितरण ओपनफैडब्लूएसपी के आधार पर जावाएफएक्स बाइनरी डिस्टिब्यूशन प्रदान करता है:
(वर्तमान में यह केवल जावा 8 के लिए काम करता है जहाँ तक मुझे पता है)।
JavaFX के संबंध में ओपन JDK और Oracle JDK के बीच अंतर
निम्न जानकारी जावा 8 के लिए प्रदान की गई थी। जावा 9 के रूप में, वीएफ़ 6 एन्कोडिंग को जावाएफएक्स के लिए पदावनत किया जाता है और ओरेकल वेबस्टार्ट / ब्राउज़र एम्बेडेड एप्लिकेशन परिनियोजन तकनीक को भी पदावनत किया जाता है । जावाएफएक्स के भविष्य के संस्करण, भले ही वे ओरेकल द्वारा वितरित किए गए हों, संभवतः किसी भी तकनीक को शामिल नहीं करेंगे जो कि खुला स्रोत नहीं है।
Oracle JDK में कुछ सॉफ्टवेयर शामिल हैं जो OpenJDK से प्रयोग करने योग्य नहीं हैं। दो मुख्य घटक हैं जो JavaFX से संबंधित हैं।
- ON2 VP6 वीडियो कोडेक, जो Google के स्वामित्व में है और Google ने इसका स्रोत नहीं खोला है।
- Oracle WebStart / Browser एंबेडेड एप्लिकेशन परिनियोजन तकनीक।
इसका मतलब है कि JavaFX का एक ओपन वर्जन VP6 FLV फाइल नहीं चला सकता है। यह कोई बड़ा नुकसान नहीं है क्योंकि वीपी 6 एनकोडर्स या मीडिया को वीपी 6 में एनकोडेड ढूंढना मुश्किल है।
अन्य सामान्य वीडियो प्रारूप, जैसे कि H.264, JavaFX के एक खुले संस्करण के साथ ठीक होगा (जब तक कि आपके पास उपयुक्त टारगेट मशीन पर पूर्व-स्थापित है)।
WebStart / Browser एंबेडेड तैनाती तकनीक की कमी वास्तव में OpenJDK के साथ विशेष रूप से JavaFX के बजाय कुछ करने के लिए ही है। इस तकनीक का उपयोग गैर-जावाएफ़एक्स अनुप्रयोगों को तैनात करने के लिए किया जा सकता है।
यह बहुत अच्छा होगा यदि OpenSource समुदाय ने जावा (और अन्य सॉफ़्टवेयर) के लिए एक परिनियोजन तकनीक विकसित की है जो पूरी तरह से वेबस्टार्ट और ब्राउज़र एंबेडेड परिनियोजन विधियों को प्रतिस्थापित कर देता है, जिससे एप्लिकेशन वितरण के लिए एक अच्छा प्रकाश-भार, कम प्रभाव उपयोगकर्ता अनुभव की अनुमति मिलती है। मेरा मानना है कि इस तरह के लक्ष्य की पूर्ति के लिए कुछ परियोजनाएँ शुरू हुई हैं, लेकिन वे अभी तक उच्च परिपक्वता और गोद लेने के स्तर तक नहीं पहुँची हैं।
व्यक्तिगत रूप से, मुझे लगता है कि वेबस्टार्ट / ब्राउज़र एंबेडेड तैनाती विरासत प्रौद्योगिकी है और वर्तमान में जावाएफ़एक्स के कई अनुप्रयोगों (जैसे स्व-निहित अनुप्रयोग) को तैनात करने के बेहतर तरीके हैं।
अपडेट दिसंबर, 2019:
JDK 11+ के लिए वेबस्टार्ट का एक खुला स्रोत संस्करण विकसित किया गया है और यह https://openwebstart.com पर उपलब्ध है ।
किसे Linux OpenJDK डिस्ट्रीब्यूशन बनाने की जरूरत है जिसमें JavaFX शामिल है
यह उन लोगों पर निर्भर है जो JDK और JRE के लिए RPM बनाने के लिए OpenJDK (जैसे Redhat, Ubuntu आदि) के आधार पर लिनक्स वितरण के लिए पैकेज बनाते हैं जिसमें JavaFX शामिल है। उन सॉफ्टवेयर वितरकों, तो उत्पन्न पैकेजों को उनके मानक वितरण कोड रिपॉजिटरी (उदाहरण के लिए फेडोरा / रेड हैट यम रिपॉजिटरी) में रखने की आवश्यकता होती है। वर्तमान में यह नहीं किया जा रहा है, लेकिन मुझे बहुत आश्चर्य होगा अगर जावा 8 लिनक्स पैकेज में जावा 8 मार्च 2014 में रिलीज़ होने पर जावाएफएक्स को शामिल नहीं किया गया।
अपडेट, दिसंबर 2019 :
अब जब JavaFX अधिकांश बाइनरी JDK और JRE वितरण (Oracle के वितरण सहित) से अलग हो गया है और इसके बजाय, एक स्टैंड-अलोन SDK, jmods का सेट या केंद्रीय Menen रिपॉजिटरी से उपलब्ध लाइब्रेरी निर्भरता के रूप में उपलब्ध है (जैसा कि उल्लिखित है) https://openjfx.io ), JavaFX को शामिल करने के लिए मानक Linux OpenJDK वितरण की आवश्यकता कम है।
यदि आप एक पूर्व-निर्मित JDK चाहते हैं जिसमें JavaFX शामिल हो, तो Liberica JDK वितरण पर विचार करें , जो विभिन्न प्रकार के प्लेटफार्मों के लिए प्रदान किए जाते हैं।
स्थानापन्न अनुप्रयोगों के लिए तैनाती पर सलाह
मैं जावा के स्व-निहित अनुप्रयोग परिनियोजन मोड का उपयोग करने की सलाह देता हूं ।
इस परिनियोजन मोड का विवरण है:
एप्लिकेशन को स्थानीय ड्राइव पर स्थापित किया गया है और जावा और JavaFX रनटाइम की एक निजी कॉपी का उपयोग करके एक स्टैंडअलोन प्रोग्राम के रूप में चलता है। एप्लिकेशन को उस ऑपरेटिंग सिस्टम के अन्य मूल अनुप्रयोगों के समान लॉन्च किया जा सकता है, उदाहरण के लिए डेस्कटॉप शॉर्टकट या मेनू प्रविष्टि का उपयोग करके।
आप Oracle JDK डिस्ट्रीब्यूशन से या OpenJDK बिल्ड जिसमें JavaFX शामिल है, से एक सेल्फ-निहित एप्लिकेशन का निर्माण कर सकते हैं। वर्तमान में Oracle JDK के साथ ऐसा करना आसान है।
जैसा कि जावा के एक संस्करण को आपके एप्लिकेशन के साथ बंडल किया गया है, आपको इस बात की परवाह नहीं है कि जावा के किस संस्करण को मशीन में पहले से इंस्टॉल किया गया है, इसमें क्या क्षमताएं हैं और क्या यह आपके प्रोग्राम के अनुकूल है या नहीं। इसके बजाय, आप एक सटीक जावा रनटाइम संस्करण के खिलाफ अपने आवेदन का परीक्षण कर सकते हैं, और अपने आवेदन के साथ वितरित कर सकते हैं। आपके एप्लिकेशन को लागू करने के लिए उपयोगकर्ता अनुभव उनकी मशीन पर एक मूल एप्लिकेशन इंस्टॉल करने के समान होगा (उदाहरण के लिए एक विंडोज़ .exe या .msi स्थापित, एक OS X .dmg, एक linux .rpm या .deb)।
नोट: स्व-निहित एप्लिकेशन सुविधा केवल जावा 8 और 9 के लिए उपलब्ध थी, और जावा 10-13 के लिए नहीं। जावा 14, जेईपी 343 के माध्यम से : पैकेजिंग टूल , OpenJDK वितरण से इस सुविधा के लिए फिर से सहायता प्रदान करने के लिए निर्धारित है।
अपडेट, अप्रैल 2018: भविष्य के घटनाक्रमों के बारे में ओरेकल की वर्तमान नीति पर जानकारी