สภาพแวดล้อมรันไทม์ของ Java คืออะไร
Java Runtime Environment (JRE) เป็นซอฟต์แวร์ที่โปรแกรม Java ต้องใช้ในการทำงานให้ถูกต้อง Java เป็นภาษาคอมพิวเตอร์ที่ขับเคลื่อนเว็บแอปพลิเคชันและแอปพลิเคชันบนอุปกรณ์เคลื่อนที่หลายรายการในปัจจุบัน JRE เป็นเทคโนโลยีพื้นฐานที่สื่อสารระหว่างโปรแกรม Java และระบบปฏิบัติการ โดยจะทำหน้าที่เป็นผู้แปลและผู้อำนวยความสะดวกที่จัดหาทรัพยากรทั้งหมด เพื่อว่าเมื่อคุณเขียนซอฟต์แวร์ Java ก็จะสามารถทำงานได้บนทุกระบบปฏิบัติการโดยไม่ต้องมีการแก้ไขเพิ่มเติม
ทำไม JRE จึงสำคัญ
โปรแกรมซอฟต์แวร์จำเป็นต้องใช้สภาพแวดล้อมรันไทม์ที่ให้การเข้าถึงหน่วยความจำและทรัพยากรอื่น ๆ ของระบบ เช่น แฟ้มโปรแกรมและไฟล์ที่จำเป็นต้องใช้ร่วม ในอดีต ซอฟต์แวร์ส่วนใหญ่ใช้ระบบปฏิบัติการเป็นสภาพแวดล้อมรันไทม์ของตัวมันเองโดยตรง อย่างไรก็ตาม นั่นหมายความว่านักพัฒนาต้องเขียนโค้ดที่แตกต่างกันสำหรับแต่ละระบบปฏิบัติการที่ตนต้องการให้แอปพลิเคชันของตนทำงานได้ เทคโนโลยีสภาพแวดล้อมรันไทม์ของ Java (JRE) จึงได้รับการสร้างขึ้นเพื่อเป็นแนวทางแก้ไขปัญหานี้
จริง ๆ แล้ว JRE เป็นหนึ่งในสามองค์ประกอบของแพลตฟอร์ม Java ที่จำเป็นต้องมี โปรแกรม Java ทุกโปรแกรมถึงจะทำงานได้สำเร็จ ชุดเครื่องมือพัฒนา Java Development Kit (JDK) และเครื่องเสมือนของ Java (JVM) เป็นอีกสององค์ประกอบ
ชุดเครื่องมือพัฒนา Java Development Kit
JDK คือชุดเครื่องมือซอฟต์แวร์ที่คุณสามารถนำมาใช้เพื่อพัฒนาแอปพลิเคชัน Java คุณสามารถติดตั้ง JDK ในสภาพแวดล้อมการพัฒนาของคุณได้ด้วยการดาวน์โหลดและติดตั้ง เลือกซอฟต์แวร์ JDK ที่ตรงกับเวอร์ชันของ Java ที่คุณต้องการใช้ ตัวอย่างเช่น Java Standard Edition หรือ Java SE จะจำเป็นต้องใช้ Java SE JDK
เครื่องเสมือนของ Java
JVM คือซอฟต์แวร์ที่เรียกใช้โปรแกรม Java ทีละบรรทัด นักพัฒนาจะกำหนดค่าการตั้งค่า JVM เพื่อจัดการทรัพยากรโปรแกรมเมื่อใดก็ตามที่แอปพลิเคชัน Java ทำงาน ตัวอย่างเช่น คุณสามารถเปลี่ยนแปลงการตั้งค่าหน่วยความจำของ JVM และตรวจสอบว่าแอปพลิเคชัน Java ของคุณใช้หน่วยความจำเท่าใดเมื่อรันไทม์ได้
บทบาทของ JRE ในภาษาเขียนโปรแกรม Java
JRE รวมโค้ด Java ที่คุณสร้างชึ้นโดยใช้ JDK เข้ากับโค้ดในตัวเพิ่มเติมที่มีชื่อว่าไลบรารี จากนั้น JRE จะสร้างอินสแตนซ์ JVM หรือสำเนาในเครื่อง ซึ่งในที่สุดก็จะเรียกใช้โปรแกรม Java JVM มีให้ใช้ได้ในระบบปฏิบัติหลายระบบ และ JRE จะสร้างสำเนาโค้ด Java ของคุณชุดเดียวแต่ทำงานได้บน JVM ทุกประเภท ด้วยวิธีนี้ JRE จะช่วยให้แอปพลิเคชัน Java ไม่ต้องขึ้นกับแพลตฟอร์มเฉพาะใด คุณสามารถเขียนโปรแกรมครั้งเดียวแล้วเรียกใช้งานได้ทุกที่
ความแตกต่างระหว่าง JRE, JVM และ JDK
JDK คือชั้นซอฟต์แวร์ที่อยู่เหนือ JRE ซึ่งประกอบด้วยคอมไพเลอร์ ดีบักเกอร์ และเครื่องมืออื่น ๆ ที่มักพบได้ในสภาพแวดล้อมการพัฒนาซอฟต์แวร์ทั้งหมด คุณเขียนโค้ดตามหลักไวยากรณ์คล้ายภาษาอังกฤษใน JDK JDK จะคอมไพล์โค้ด แล้วส่งต่อไบต์โค้ดไปยัง JRE ในทางตรงกันข้าม JRE ประกอบด้วยคลาสไลบรารี ไฟล์สนับสนุน และ JVM และจะใช้องค์ประกอบซอฟต์แวร์เหล่านี้เพื่อรันไบต์โค้ดบนทุกอุปกรณ์
JRE ทำงานอย่างไร
สภาพแวดล้อมรันไทม์ของ Java (JRE) ทำงานเพิ่มเติมจากระบบปฏิบัติการ และจัดหาทรัพยากรที่จำเพาะเจาะจงกับ Java เพิ่มเติม ชุดเครื่องมือพัฒนา Java Development Kit (JDK) และ JRE โต้ตอบกันเพื่อสร้างสภาพแวดล้อมรันไทม์ที่ยั่งยืนซึ่งเรียกใช้แฟ้มโปรแกรม Java ได้บนทุกเครื่อง JRE ใช้องค์ประกอบหลักสามองค์ประกอบในการทำงาน
ClassLoader
คลาสไลบรารี Java ประกอบด้วยชุดโค้ดที่เขียนไว้ก่อนซึ่งคุณสามารถเรียกใช้ได้ตามต้องการ ชุดโค้ดเหล่านี้ทำให้งานของนักพัฒนา Java ง่ายขึ้น เพราะให้วิธีการสำหรับการทำงานที่พบบ่อยและไม่สลักสำคัญมากนักให้ในตัว เช่น การรับอินพุตจากผู้ใช้ การแสดงเอาต์พุตแก่ผู้ใช้ และอีกมากมาย โปรแกรม Java ทั้งหมดอ้างอิงคลาสไลบรารีหลากหลายคลาส ClassLoader ของ Java โหลดไฟล์คลาสทั้งหมดที่จำเป็นลงในเครื่องเสมือนของ Java (JVM) ได้แบบไดนามิกตามความต้องการ
ตัวตรวจสอบไบต์โค้ด
JDK มีคอมไพเลอร์ที่แปลงโค้ดคล้ายภาษาอังกฤษที่คุณเขียน ให้เป็นภาษาของเครื่องในเวอร์ชันที่เรียกว่าไบต์โค้ด Java จากนั้นตัวตรวจสอบไบต์โค้ดใน JRE จะตรวจสอบความถูกต้องของโค้ด Java ก่อนที่จะโหลดโค้ดเข้าใน JVM ตัวอย่างเช่น หากโค้ดทำให้ความสมบูรณ์ของระบบเสียหายหรือละเมิดสิทธิ์เข้าถึง JRE จะไม่โหลดไฟล์คลาสนั้น
ตัวแปล
หลังจากที่ไบต์โค้ดโหลดสำเร็จ ตัวแปลของ Java จะสร้างอินสแตนซ์ JVM ที่เรียกใช้โปรแกรม Java บนเครื่องพื้นฐาน
องค์ประกอบของ JRE มีอะไรบ้าง
นอกเหนือจากองค์ประกอบหลักแล้ว สภาพแวดล้อมรันไทม์ของ Java (JRE) ยังประกอบด้วยองค์ประกอบซอฟต์แวร์อื่น ๆ ที่ช่วยให้โปรแกรม Java ทำงานได้อย่างมีประสิทธิภาพมากขึ้น ต่อไปนี้คือตัวอย่างบางส่วน:
เครื่องมือพัฒนา
JRE ประกอบด้วยเครื่องมือพัฒนาต่าง ๆ เช่น ชุดเครื่องมืออินเทอร์เฟซผู้ใช้ ซึ่งคุณสามารถใช้เพื่อปรับปรุงคุณภาพของแอปพลิเคชันของคุณได้ ต่อไปนี้คือตัวอย่างบางส่วน:
Java 2D
Java 2D คืออินเทอร์เฟซการเขียนโปรแกรมแอปพลิเคชัน (API) ที่คุณสามารถใช้เพื่อวาดภาพกราฟิกสองมิติ แล้วสร้างอินเทอร์เฟซผู้ใช้ เกม แอนิเมชัน และเอฟเฟกต์พิเศษที่สวยงามในภาษา Java
Swing
Swing คืออินเทอร์เฟซผู้ใช้แบบกราฟิก (GUI) ที่ใช้พื้นที่น้อย ให้การปรับแต่งที่ยืดหยุ่นและใช้งานง่าย
Abstract Window Toolkit
Abstract Window Toolkit (AWT) คือ GUI ที่คุณสามารถใช้เพื่อสร้างวัตถุ UI เช่น ปุ่ม หน้าต่าง และแถบเลื่อน
โซลูชันการนำไปใช้จริง
JRE รวมถึงเทคโนโลยีที่ทำให้กระบวนการเผยแพร่การเปลี่ยนแปลงซอฟต์แวร์ให้กับผู้ใช้แอปพลิเคชันเรียบง่ายขึ้น และเทคโนโลยีเหล่านี้ยังให้การสนับสนุนขั้นสูงสำหรับการอัปเดตในแอปพลิเคชันด้วย เทคโนโลยีการนำไปใช้จริง เช่น Java Web Start และปลั๊กอิน Java มีรวมอยู่เป็นส่วนหนึ่งในการติดตั้ง JRE เทคโนโลยีทำให้การเปิดใช้งานแอปพลิเคชันง่ายขึ้น อีกทั้งยังให้การสนับสนุนขั้นสูงสำหรับการอัปเดต JRE ในอนาคตด้วย ต่อไปนี้คือตัวอย่างบางส่วน:
Java Web Start
ด้วย Java Web Start คุณจะสามารถเปิดแอปพลิเคชันที่มีคุณสมบัติครบถ้วนจากเว็บเบราว์เซอร์ของคุณได้ด้วยคลิกเดียว
ปลั๊กอิน Java
ปลั๊กอิน Java สร้างการเชื่อมต่อระหว่างเบราว์เซอร์ยอดนิยมและแพลตฟอร์ม Java เพื่อให้คุณสามารถเรียกใช้แอปเพล็ตเว็บไซต์ของคุณภายในเบราว์เซอร์เดสก์ท็อปได้
ภาษาและไลบรารียูทิลิตี
ชุดไฟล์คลาส Java มีชื่อว่าแพ็คเกจ Java JRE รวมถึงแพ็คเกจ Java มากมายที่สนับสนุนการกำหนดเวอร์ชัน การจัดการ และการเฝ้าติดตาม แพ็คเกจต่อไปนี้คือตัวอย่างบางส่วน:
Collections framework
คอลเลกชันเฟรมเวิร์กคือสถาปัตยกรรมแบบเบ็ดเสร็จที่รวมถึงอินเทอร์เฟซเพื่อปรับปรุงการจัดเก็บและการประมวลผลข้อมูลของแอปพลิเคชัน
Preferences API
Preferences API ทำให้ผู้ใช้หลายรายบนเครื่องเดียวกันสามารถกำหนดกลุ่มการตั้งค่าแอปพลิเคชันของตนเองได้
การบันทึก
แพ็คเกจการบันทึกสร้างรายงานข้อมูลบันทึกสำหรับการแก้ไขปัญหาเหตุการณ์ต่าง ๆ เช่น ความล้มเหลวในการรักษาความปลอดภัย ปัญหาประสิทธิภาพ และข้อผิดพลาดในการกำหนดค่า
Java Archive
Java Archive (JAR) คือรูปไฟล์ที่เป็นอิสระจากแพลตฟอร์มที่ทำให้คุณจัดรวมไฟล์หลายไฟล์เข้าด้วยกัน เพื่อลดขนาดไฟล์ของแอปพลิเคชันของคุณและเพิ่มความเร็วในการดาวน์โหลดได้เป็นอย่างมาก
ไลบรารีการผสานการทำงาน
JRE รวมถึงไลบรารีการผสานการทำงานมากมายที่จะช่วยนักพัฒนาในการสร้างการเชื่อมโยงข้อมูลที่ไร้รอยต่อระหว่างบริการและแอปพลิเคชันของตน ต่อไปนี้คือบางตัวอย่างของไลบรารี:
Java IDL
ภาษาการกำหนดอินเทอร์เฟซ Java (IDL) ซึ่งมีพื้นฐานมาจากสถาปัตยกรรมคำขออ็อบเจกต์ที่พบบ่อย (CORBA) รองรับอ็อบเจกต์ข้อมูลที่กระจาย—นั่นคืออ็อบเจกต์ที่โต้ตอบบนแพลตฟอร์มที่แตกต่างกันบนเครือข่าย ตัวอย่างเช่น Java IDL ทำให้อ็อบเจกต์ที่เขียนในภาษา Java โต้ตอบกับอ็อบเจกต์ที่เขียนในภาษาอื่น เช่น C, C++ หรือ COBOL ได้
การเชื่อมต่อฐานข้อมูล Java
นักพัฒนาใช้ API การเชื่อมต่อฐานข้อมูล Java (JDBC) เพื่อเขียนแอปพลิเคชันที่สามารถเข้าถึงฐานข้อมูล สปรดชีต และไฟล์จากระยะไกล
อินเทอร์เฟซการกำหนดชื่อ Java และไดเรกทอรี
อินเทอร์เฟซการกำหนดชื่อ Java และไดเรกทอรี (JNDI) คือบริการไดเรกทอรีที่ให้ไคลเอ็นต์สร้างแอปพลิเคชันพกพาที่ดึงข้อมูลจากฐานข้อมูลภายนอกโดยใช้กฎการกำหนดชื่อ
AWS SDK สำหรับ Java คืออะไร
AWS Software Development Kit (SDK) สำหรับ Java ทำให้การใช้บริการของ AWS ง่ายขึ้นโดยการจัดหาชุดไลบรารีที่สอดคล้องและเป็นที่คุ้นเคยสำหรับนักพัฒนา Java ซึ่งรองรับการกำหนดสาระสำคัญในระดับที่สูงขึ้นเพื่อการพัฒนาที่ง่ายขึ้น ทั้งนี้ไลบรารี Java แบบโอเพนซอร์สที่ให้ความสำคัญกับ AWS นั้นพร้อมใช้งานร่วมกับตัวอย่างโค้ดและคู่มืออ้างอิง Java API
โดยตัวอย่างโค้ด AWSAWS SDK สำหรับ Java 2.0 บน GitHub ประกอบด้วยตัวอย่างโค้ด Java และกรณีการใช้งานจริงสำหรับบริการของ AWS เพื่อช่วยเร่งการพัฒนาแอปพลิเคชันของคุณ นอกจากนี้ คู่มืออ้างอิง AWS SDK สำหรับ Java API จะอธิบายการทำงานของ API สำหรับ AWS SDK สำหรับ Java เวอร์ชันล่าสุด นอกจากนี้ คู่มืออ้างอิงดังกล่าวยังมีตัวอย่างคำขอ การตอบกลับ และข้อผิดพลาดสำหรับโปรโตคอลบริการเว็บที่รองรับอีกด้วย
เริ่มต้นใช้งาน AWS SDK สำหรับ Java โดยใช้คู่มือนักพัฒนา AWS SDK สำหรับ Java หรือไปที่ AWS Java Developer Center