OpenJDK 1.8 เพื่อภาษา Java

Phai Panda
Tech INNO
Published in
3 min readDec 29, 2020

ไม่บ่อยนักที่นักพัฒนามือใหม่รุ่นเก่าอย่างผมจะนึกถึง OpenJDK เพราะเคยอยู่ในยุคที่ภาษา Java ยังเป็นอิสระจากบริษัทเจ้าพ่อฐานข้อมูลอย่าง Oracle ทว่าเช้านี้ผมเองได้ลง macOS ใหม่อย่าง Big Sur จึงได้คิดว่าทำไมเราไม่ลองลง OpenJDK เสียหน่อย

snyk.io

ภาพข้างต้นนี้อธิบายว่า เรามีหนทางในการติดตั้ง 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

เจอ 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

--

--