Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Java

โหมดการคอมไพล์ที่แตกต่างกันของโมดูลใน Java 9 คืออะไร


A โมดูล เป็นคอนเทนเนอร์ของแพ็คเกจและแต่ละโมดูลมีตัวอธิบายโมดูลที่มี โมดูล ชื่อ , โมดูล การพึ่งพา หมายความว่าชื่อของโมดูลอื่นขึ้นอยู่กับและชื่อของแพ็คเกจที่ส่งออกซึ่งสามารถใช้ได้เฉพาะโดยโมดูลที่ขึ้นอยู่กับโมดูลเท่านั้น

module com.tutorialspoint.app {
   /** Modules upon which the module com.tutorialspoint.app depends on */
   requires com.tutorialspoint.services;
   /** Packages exposed by this module which can be used by other modules */
   exports com.tutorialspoint.app.util;
}

มีโหมดการคอมไพล์ที่แตกต่างกันสามโหมดโดยโมดูล Java 9:​​โหมดดั้งเดิม โหมดโมดูลเดียว และโหมดหลายโมดูล

โหมดการรวบรวมของโมดูล:


  • โหมดเดิม :สามารถเปิดใช้งานได้เมื่อสภาพแวดล้อมการคอมไพล์กำหนดโดย --source , --เป้าหมาย, และ --ปล่อย ตัวเลือกน้อยกว่าหรือเท่ากับ 8 . คอมไพเลอร์ทำงานในลักษณะเดียวกับที่ทำใน Java 8 (หรือก่อนหน้านี้) ที่เราสามารถใช้ตัวเลือกดั้งเดิม (classpath ฯลฯ) แทนที่จะเป็นตัวเลือกที่เกี่ยวข้องกับโมดูล (--module-path ). ในโหมดนี้ รหัสของเราทำงานเป็น ไม่มีชื่อ โมดูล ระหว่างรันไทม์
  • โหมดโมดูลเดียว :สามารถเปิดใช้งานได้เมื่อสภาพแวดล้อมการคอมไพล์เป็น 9 หรือใหม่กว่าและ --module-source-path ไม่ได้ใช้ตัวเลือก ในโหมดนี้ โค้ดมีโครงสร้างในแผนผังไดเร็กทอรีแบบลำดับชั้นของแพ็คเกจดั้งเดิม โค้ดมี module-info.java ไฟล์และรันบน modulepath มากกว่าบน classpath ในโครงสร้างนี้ เราสามารถวางไฟล์ module-info.java ไว้ใต้ไดเร็กทอรี src ได้โดยตรง เราไม่สามารถมีไฟล์ module-info.java หลายไฟล์ในแผนผังไดเร็กทอรีเดียวกันได้ จึงเรียกว่า ไฟล์เดียว โมดูล โหมด .
  • โหมดหลายโมดูล :สามารถเปิดใช้งานได้เมื่อสภาพแวดล้อมการคอมไพล์เป็น 9 หรือใหม่กว่าและ --module-source-path ใช้ตัวเลือก ในโหมดนี้ เราวางโมดูลหลายโมดูลไว้ใต้ไดเร็กทอรีต้นทางเดียวกัน ระหว่างเวลาคอมไพล์ ไดเร็กทอรีต้นทางหลักสามารถระบุได้ด้วย --module-source-path ตัวเลือก. โครงสร้างต้นทางสำหรับแต่ละโมดูลสามารถวางในไดเร็กทอรีย่อยของตนเองภายใต้ไดเร็กทอรีซอร์สหลัก