JavaFX เป็นส่วนหนึ่งของ OpenJDK
โครงการ JavaFX ตัวเองเป็นโอเพนซอร์สและเป็นส่วนหนึ่งของโครงการ OpenJDK
อัปเดตธันวาคม 2019
สำหรับข้อมูลที่เป็นปัจจุบันเกี่ยวกับวิธีการใช้ Open Source JavaFX เยี่ยมชมhttps://openjfx.io ซึ่งรวมถึงคำแนะนำในการใช้ JavaFX เป็นไลบรารีแบบโมดูลาร์ที่เข้าถึงได้จาก JDK ที่มีอยู่ (เช่นการติดตั้ง Open JDK )
พื้นที่เก็บข้อมูลรหัสที่มาเปิดให้บริการสำหรับ JavaFX ที่https://github.com/openjdk/jfx
ที่ตำแหน่งต้นทางที่ลิงก์คุณจะพบไฟล์ไลเซนส์สำหรับ JavaFX แบบเปิด (ปัจจุบันไลเซนส์นี้ตรงกับไลเซนส์สำหรับ OpenJDK: GPL + คลาสพา ธ ข้อยกเว้น)
วิกิสำหรับโครงการอยู่ที่: https://wiki.openjdk.java.net/display/OpenJFX/Main
หากคุณต้องการเริ่มต้นใช้งาน JavaFX แบบเปิดอย่างรวดเร็วการแจกแจง Belsoft Liberica JDKจะให้ไบนารีที่สร้างไว้ล่วงหน้าของ OpenJDK ซึ่ง (ปัจจุบัน) รวม JavaFX แบบเปิดสำหรับแพลตฟอร์มที่หลากหลาย
สำหรับการแจกจ่ายเป็นแอปพลิเคชันที่มีอยู่ในตัว Java 14 มีกำหนดจะใช้JEP 343: Packaging Toolซึ่ง "รองรับรูปแบบบรรจุภัณฑ์ดั้งเดิมเพื่อให้ผู้ใช้ปลายทางได้รับประสบการณ์การติดตั้งที่เป็นธรรมชาติรูปแบบเหล่านี้รวมถึง msi และ exe บน Windows, pkg และ dmg บน macOS และ deb และ rpm บน Linux "สำหรับการปรับใช้แอปพลิเคชันที่ใช้ OpenJFX กับโปรแกรมติดตั้งแบบเนทีฟและไม่มีการอ้างอิงแพลตฟอร์มเพิ่มเติม (เช่น JDK ที่ติดตั้งไว้ล่วงหน้า)
ข้อมูลเก่าซึ่งอาจล้าสมัยเมื่อเวลาผ่านไป
การสร้าง JavaFX จากที่เก็บ OpenJDK
คุณสามารถสร้างOpenJDK เวอร์ชันเปิด (รวมถึง JavaFX) ได้อย่างสมบูรณ์จากซอร์สซึ่งไม่มีการพึ่งพา Oracle JDK หรือซอร์สโค้ดแบบปิด
อัปเดต: การใช้การแจกจ่าย JavaFX ที่สร้างไว้ล่วงหน้าจากแหล่ง OpenJDK
ตามที่ระบุไว้ในความคิดเห็นของคำถามนี้และในคำตอบอื่นการแจกแจง Debian Linux เสนอการแยกแยะไบนารี JavaFX ตาม OpenJDK:
(ตอนนี้ใช้ได้เฉพาะกับ Java 8 เท่าที่ฉันรู้)
ความแตกต่างระหว่าง Open JDK และ Oracle JDK ที่เกี่ยวกับ JavaFX
ข้อมูลต่อไปนี้จัดเตรียมไว้สำหรับ Java 8 สำหรับ Java 9 การเข้ารหัส VP6 เลิกใช้งานสำหรับ JavaFXและเทคโนโลยีการปรับใช้แอ็พพลิเคชันแบบฝังตัว Oracle WebStart / Browser ก็เลิกใช้เช่นกัน ดังนั้น JavaFX เวอร์ชันในอนาคตแม้ว่าจะเผยแพร่โดย Oracle แต่ก็น่าจะไม่มีเทคโนโลยีใด ๆ ที่ไม่ใช่โอเพ่นซอร์ส
Oracle JDK มีซอฟต์แวร์บางตัวที่ไม่สามารถใช้งานได้จาก OpenJDK มีสององค์ประกอบหลักที่เกี่ยวข้องกับ JavaFX
- ตัวแปลงสัญญาณวิดีโอ ON2 VP6 ซึ่งเป็นของ Google และ Google ไม่ได้เปิดแหล่งที่มา
- เทคโนโลยีการปรับใช้แอปพลิเคชัน Oracle WebStart / Browser Embedded
ซึ่งหมายความว่า JavaFX เวอร์ชันเปิดไม่สามารถเล่นไฟล์ VP6 FLV ได้ นี่ไม่ใช่การสูญเสียครั้งใหญ่เนื่องจากเป็นการยากที่จะค้นหาตัวเข้ารหัส VP6 หรือสื่อที่เข้ารหัสใน VP6
รูปแบบวิดีโอทั่วไปอื่น ๆ เช่น H.264 จะเล่นได้ดีกับ JavaFX เวอร์ชันเปิด (ตราบเท่าที่คุณมีตัวแปลงสัญญาณที่เหมาะสมติดตั้งไว้ล่วงหน้าบนเครื่องเป้าหมาย)
การขาดเทคโนโลยีการปรับใช้ WebStart / Browser Embedded นั้นเป็นสิ่งที่เกี่ยวข้องกับ OpenJDK มากกว่า JavaFX โดยเฉพาะ เทคโนโลยีนี้สามารถใช้เพื่อปรับใช้แอปพลิเคชันที่ไม่ใช่ JavaFX
จะดีมากถ้าชุมชน OpenSource พัฒนาเทคโนโลยีการปรับใช้งานสำหรับ Java (และซอฟต์แวร์อื่น ๆ ) ซึ่งแทนที่วิธีการปรับใช้ WebStart และ Browser Embedded โดยสิ้นเชิงทำให้ได้รับประสบการณ์การใช้งานที่มีน้ำหนักเบาและมีผลกระทบต่ำสำหรับการแจกจ่ายแอปพลิเคชัน ฉันเชื่อว่ามีบางโครงการที่เริ่มบรรลุเป้าหมายดังกล่าวแล้ว แต่พวกเขายังไม่ถึงระดับที่มีวุฒิภาวะสูงและการนำไปใช้
โดยส่วนตัวแล้วฉันรู้สึกว่าการปรับใช้ WebStart / Browser Embedded เป็นเทคโนโลยีเดิมและปัจจุบันมีวิธีที่ดีกว่าในการปรับใช้แอปพลิเคชัน JavaFX จำนวนมาก (เช่นแอปพลิเคชันในตัว)
อัปเดตธันวาคม 2019:
รุ่นเปิดแหล่งที่มาของ WebStart สำหรับ JDK 11 + ได้รับการพัฒนาและสามารถใช้ได้ในhttps://openwebstart.com
ใครต้องการสร้าง Linux OpenJDK Distributions ซึ่งรวมถึง JavaFX
ขึ้นอยู่กับผู้ที่สร้างแพ็คเกจสำหรับการกระจาย Linux โดยใช้ OpenJDK (เช่น Redhat, Ubuntu และอื่น ๆ ) เพื่อสร้าง RPM สำหรับ JDK และ JRE ที่มี JavaFX จากนั้นผู้จัดจำหน่ายซอฟต์แวร์เหล่านั้นจำเป็นต้องวางแพ็กเกจที่สร้างขึ้นในที่เก็บรหัสการแจกจ่ายมาตรฐาน (เช่นที่เก็บ yum ของเครือข่าย fedora / red hat) ขณะนี้ยังไม่เสร็จสิ้น แต่ฉันจะค่อนข้างแปลกใจถ้าแพ็คเกจ Java 8 Linux ไม่รวม JavaFX เมื่อ Java 8 ออกในเดือนมีนาคม 2014
อัปเดตธันวาคม 2019 :
ตอนนี้ JavaFX ถูกแยกออกจากการแจกแจงไบนารี JDK และ JRE ส่วนใหญ่แล้ว (รวมถึงการกระจายของ Oracle) และมีให้ใช้งานเป็น SDK แบบสแตนด์อะโลนชุด jmods หรือการอ้างอิงไลบรารีที่พร้อมใช้งานจากที่เก็บ Maven ส่วนกลาง (ตามที่ระบุไว้ว่าhttps://openjfx.io ) มีความจำเป็นน้อยกว่าสำหรับการกระจาย Linux OpenJDK มาตรฐานเพื่อรวม JavaFX
หากคุณต้องการ JDK ที่สร้างไว้ล่วงหน้าซึ่งรวมถึง JavaFX ให้พิจารณาการแจกแจง Liberica JDKซึ่งมีให้สำหรับแพลตฟอร์มที่หลากหลาย
คำแนะนำในการปรับใช้สำหรับการใช้งานที่สำคัญ
ฉันแนะนำให้ใช้โหมดการปรับใช้แอปพลิเคชันในตัวของ Java
คำอธิบายของโหมดการปรับใช้นี้คือ:
แอปพลิเคชันถูกติดตั้งบนไดรฟ์ภายในเครื่องและรันเป็นโปรแกรมแบบสแตนด์อโลนโดยใช้สำเนาส่วนตัวของ Java และ JavaFX runtimes แอปพลิเคชันสามารถเปิดใช้งานได้ในลักษณะเดียวกับแอปพลิเคชันเนทีฟอื่น ๆ สำหรับระบบปฏิบัติการนั้นเช่นใช้ทางลัดบนเดสก์ท็อปหรือรายการเมนู
คุณสามารถสร้างแอปพลิเคชันในตัวได้จากการแจกจ่าย Oracle JDK หรือจากรุ่น OpenJDK ซึ่งรวมถึง JavaFX ปัจจุบันทำได้ง่ายกว่าด้วย Oracle JDK
เนื่องจากเวอร์ชันของ Java มาพร้อมกับแอปพลิเคชันของคุณคุณจึงไม่ต้องสนใจว่า Java เวอร์ชันใดที่อาจได้รับการติดตั้งไว้ล่วงหน้าในเครื่องมีความสามารถใดบ้างและเข้ากันได้กับโปรแกรมของคุณหรือไม่ แต่คุณสามารถทดสอบแอปพลิเคชันของคุณกับเวอร์ชันรันไทม์ Java ที่แน่นอนและแจกจ่ายด้วยแอปพลิเคชันของคุณ ประสบการณ์ของผู้ใช้ในการปรับใช้แอปพลิเคชันของคุณจะเหมือนกับการติดตั้งแอปพลิเคชันดั้งเดิมบนเครื่องของตน (เช่นติดตั้ง windows .exe หรือ. msi, OS X .dmg, linux .rpm หรือ. deb)
หมายเหตุ:คุณลักษณะแอปพลิเคชันในตัวมีให้ใช้งานสำหรับ Java 8 และ 9 เท่านั้นไม่ใช่สำหรับ Java 10-13 Java 14 ผ่านJEP 343: Packaging Toolมีกำหนดจะให้การสนับสนุนคุณลักษณะนี้อีกครั้งจากการแจกแจง OpenJDK
อัปเดตเมษายน 2018: ข้อมูลเกี่ยวกับนโยบายปัจจุบันของ Oracle ต่อการพัฒนาในอนาคต