OpenJDK 1.8 เพื่อภาษา Java
ไม่บ่อยนักที่นักพัฒนามือใหม่รุ่นเก่าอย่างผมจะนึกถึง OpenJDK เพราะเคยอยู่ในยุคที่ภาษา Java ยังเป็นอิสระจากบริษัทเจ้าพ่อฐานข้อมูลอย่าง Oracle ทว่าเช้านี้ผมเองได้ลง macOS ใหม่อย่าง Big Sur จึงได้คิดว่าทำไมเราไม่ลองลง OpenJDK เสียหน่อย
ภาพข้างต้นนี้อธิบายว่า เรามีหนทางในการติดตั้ง JDK ได้มากกว่าหนึ่งจ้าว ทั้งที่ฟรีและเสียเงิน
- 34% เป็นของ Oracle ผู้ถือหุ้นใหญ่ซึ่งเป็นเจ้าของภาษา Java ในตอนนี้
- 24% สำหรับ OpenJDK ที่เรากำลังสนใจ เพราะทุกสิ่งภายใต้ license นี้ฟรี
OpenJDK
ติดตั้งผ่าน Adopt OpenJDK คลิกได้ที่นี่
เลือกเวอร์ชันและ JVM ที่เราต้องการ สำหรับงานที่ผมใช้ตอนนี้ก็แค่ JDK8 (1.8)
หรือ!
สำหรับเครื่อง macOS มีอีกวิธีที่ง่ายกว่า ง่ายที่ว่าคือมีคนดูแลเรื่องเวอร์ชันและพื้นที่ที่ติดตั้งให้ คนคนนั้นคือ Homebrew
ติดตั้งผ่าน Homebrew
หากเครื่องยังไม่มี Homebrew คลิก
จากนั้นติดตั้ง OpenJDK1.8 คลิก
หรือ!
ติดตั้งผ่าน Homebrew install Maven
เหมือนกับวิธีข้างต้นครับ แต่ให้ Homebrew ติดตั้ง Maven ให้ (Maven เป็นหนึ่งใน build tool ของโปรเจกต์ภาษา Java)
เมื่อติดตั้ง Homebrew แล้วสั่งงานต่อว่า
brew install maven
เราจะได้ทั้ง Maven และ OpenJDK เวอร์ชันล่าสุดที่มีการกำหนดให้กับ Homebrew
ตัวอย่าง
ได้รับ Maven เวอร์ชัน 3.6.3 และ OpenJDK เวอร์ชัน 15.0.1
แต่ไม่ว่าอย่างไรเราก็ต้อง symlink หรือง่ายๆว่าจับคู่ OpenJDK ที่ที่มันติดตั้งให้กับที่ที่มันจะต้องอยู่เข้าด้วยกัน นั่นคือระหว่าง
/usr/local/opt/...
กับ /Library/Java/JavaVirtualMachines/...
ที่เหลือก็เป็นเรื่องของตัวแปร PATH และคำแนะนำเพื่อให้หา OpenJDK compilers เจอจาก Terminal และโปรแกรมเรียกใช้อื่นๆ แต่หากติดตั้งแล้วใช้งานได้ปกติ (ผมจะใช้แค่ IntelliJ) ก็ข้ามขั้นตอนกำหนด PATH ไปได้เลย
ทดสอบด้วยการสร้างโปรเจกต์จาก IntelliJ IDEA
ดาวน์โหลดแล้วเปิด IntelliJ
New Project เลือกเป็น Java
…แต่ IntelliJ หา JDK ไม่เจอ (No SDK) งั้นกด dropdown เลือก Add JDK
มันมองหาที่ folder ชื่อ JavaVirtualMachines ตามที่ได้บอกไป อย่างนี้แสดงว่าผมยังไม่ทำ symlink
ทำ symlink กับ OpenJDK1.8
sudo ln -sfn /usr/local/opt/openjdk@8/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-8.jdk
กลับไป New Project ใหม่อีกครั้ง แล้วกด dropdown เลือก Add JDK
เลือก openjdk-8.jdk
แล้วกด Open
มา Hello กันหน่อย
เป็นอันว่าเรียบร้อย งานดีสวยงาม
ความแตกต่างระหว่าง Oracel JDK
กับ OpenJDK
ส่วนใครที่ยังอยากรู้ความแตกต่างระหว่าง JDK ปกติที่โหลดจาก Oracle และ OpenJDK ในแง่ของรายละเอียด ส่วนตัวค้นหามาได้ประมาณนี้ครับ
Oracle JDK
และOpenJDK
ทั้งสองถูกสร้างและดูแลโดยบริษัท Oracle- พิเศษที่
OpenJDK
มีกลุ่มที่เรียกว่าOpenJDK Community
ช่วยสนับสนุนด้วย - บริษัท Sun Microsystems ผู้เป็นเจ้าของภาษา Java ได้บริจาค
OpenJDK
ให้กับสาธารณะและOracel JDK
สร้างจาก (build on)OpenJDK
อีกที Oracle JDK
ใช้ licensed ที่มีชื่อว่า Oracle Binary Code License Agreement ส่วนOpenJDK
ใช้ licensed ที่มีชื่อว่า GNU General Public License (GNU GPL)Oracle JDK
ต้องการ commercial license (เสียเงิน) แลกกับการดูแลตัว JDK เวอร์ชันนั้นๆให้แบบระยะยาว (long term support) ในขณะที่OpenJDK
ซึ่งเป็นของฟรีจะดูแลตัว JDK ให้เพียงระยะสั้น (release และ fix bugs ร้ายแรงภายใต้ระยะเวลาหนึ่งก่อนจะประกาศเวอร์ชันใหม่ต่อไป)- ถ้าต้องการ download
Oracle JDK
(เวอร์ชัน 1.8) คลิก
อ้างอิง
https://techoral.com/blog/java/openjdk-vs-oracle-jdk.html