เมื่อแอปพลิเคชัน Java ทำงาน จำเป็นต้องโหลดไบต์ของคลาสที่ใช้ในหน่วยความจำ ดังนั้นจึงมีข้อกำหนดบางประการสำหรับตำแหน่งของไฟล์ bytecode ซึ่งโดยทั่วไปจะแบ่งออกเป็นสี่สถานการณ์ต่อไปนี้:
1. ใช้คลาสที่ไม่มีชื่อแพ็กเกจในไดเร็กทอรีที่มีแอปพลิเคชันปัจจุบันอยู่:
คลาสที่ไม่มีชื่อแพ็กเกจในไดเร็กทอรีซึ่งเป็นที่ตั้งของแอปพลิเคชันปัจจุบันสามารถโหลดและใช้งานได้โดยตรง
2. ใช้คลาสในไลบรารีคลาสในสภาพแวดล้อมรันไทม์ Java:
คลาสในไลบรารีคลาสที่สภาพแวดล้อมรันไทม์ Java จัดเตรียมไว้ให้ทั้งหมดมีชื่อแพ็คเกจ และแอปพลิเคชันต้องใช้คำสั่งนำเข้าเพื่อแนะนำคลาสในแพ็คเกจที่เกี่ยวข้อง
3. ใช้คลาสจากไดเร็กทอรีที่สืบทอดมาจากไดเร็กทอรีปัจจุบันของแอปพลิเคชัน:
ไดเร็กทอรีสืบทอดภายใต้ไดเร็กทอรีปัจจุบันของแอปพลิเคชันสามารถใช้เป็นชื่อแพ็กเกจของแพ็กเกจที่ผู้ใช้กำหนด คลาสที่มีชื่อแพ็กเกจนี้จะต้องเก็บไว้ในไดเร็กทอรีสืบทอดเหล่านี้ แอปพลิเคชันสามารถใช้คำสั่งนำเข้าเพื่อแนะนำคลาสในผู้ใช้ - แพ็คเกจที่กำหนด
4. ใช้คลาสในส่วนขยายสภาพแวดล้อมรันไทม์ Java:
เราสามารถใช้คำสั่ง jar.exe เพื่อบีบอัดไฟล์ bytecode ของบางคลาสให้เป็นไฟล์ jar จากนั้นจัดเก็บไฟล์ jar ไว้ในส่วนขยายของสภาพแวดล้อมรันไทม์ Java นั่นคือเก็บไฟล์ jar ไว้ใน jrelibext ของ โฟลเดอร์การติดตั้ง JDK เพื่อให้แอปพลิเคชัน Java สามารถใช้คลาสในไฟล์ jar นี้เพื่อสร้างอ็อบเจ็กต์
คลาสที่มีชื่อแพ็คเกจ
สมมติว่าชื่อแพ็คเกจของคลาส TestOne และ TestTwo ต่อไปนี้คือ moon.star
TestOne.java
packagemoon.star;//คำสั่งแพ็คเกจ publicclassTestOne {publicvoidfTestOne () {System.out.println (IamamethodInTestOneclass);}}
TestTwo.java
packagemoon.star;//คำสั่งแพ็คเกจ publicclassTestTwo {publicvoidfTestTwo () {System.out.println (IamamethodInTestTwoclass);}}
บันทึก TestOne.java และ TestTwo.java ลงในไดเร็กทอรี C:1000moonstar จากนั้นป้อนไดเร็กทอรีนี้เพื่อคอมไพล์ไฟล์ต้นฉบับทั้งสองไฟล์ตามลำดับ
ตอนนี้ เราจะบีบอัด TestOne.class และ TestTwo.class ในไดเร็กทอรี C:1000moonstar ลงในไฟล์ jar: Jerry.jar
ขั้นแรก เราเขียนไฟล์ Manifest: hello.mf (Manifestfiles)
สวัสดี.MF
รายการ-เวอร์ชัน:1.0คลาส:moon.star.TestOnemoon.star.TestTwoCreated-By:1.6
บันทึก hello.mf ลงในไดเร็กทอรี C:1000 หากต้องการใช้คำสั่ง jar เพื่อสร้างไฟล์ jar คุณต้องป้อนไดเร็กทอรี C:1000 ก่อน นั่นคือ ป้อนไดเร็กทอรีเหนือชื่อแพ็กเกจ จากนั้น ใช้คำสั่ง jar เพื่อสร้างไฟล์ชื่อ Jerry.jar
C:1000>jarcfmJerry.jarhello.mfmoonstarTestOne.classmoonstarTestTwo.class
หาก C:1000moonstar มีไฟล์ bytecode เพียงสองไฟล์ ได้แก่ TestOne.class และ TestTwo.class คุณสามารถใช้คำสั่ง jar ได้
C:1000>jarcfmJerry.jarhello.mfmoonstar*.class
สุดท้าย ให้คัดลอกไฟล์ Jerry.jar ที่สร้างโดยคำสั่ง jar ในไดเร็กทอรี C:1000 ไปยังส่วนขยายของสภาพแวดล้อมรันไทม์ Java นั่นคือเก็บไฟล์ Jerry.jar ไว้ในโฟลเดอร์ jrelibext ของการติดตั้ง JDK ไดเรกทอรี
คลาสที่ไม่มีชื่อแพ็กเกจ
หากคลาส TestOne และ TestTwo ไม่มีชื่อแพ็คเกจ เพียงบันทึก TestOne.java และ TestTwo.java ไปที่ C:1000 และคอมไพล์ไฟล์ bytecode เขียนไฟล์ Manifest จากนั้นบันทึกลงใน C:1000 ป้อนไดเร็กทอรี C:1000 และใช้คำสั่ง jar
C:1000>jarcfmJerry.jarhello.mfTestOne.classTestTwo.class
หาก C:1000 มีไฟล์ bytecode เพียงสองไฟล์ ได้แก่ TestOne.class และ TestTwo.class คุณสามารถใช้คำสั่ง jar ได้
C:1000>jarcfmJerry.jarhello.mf*.class
สุดท้าย ให้คัดลอกไฟล์ Jerry.jar ที่สร้างโดยคำสั่ง jar ในไดเร็กทอรี C:1000 ไปยังโฟลเดอร์ jrelibext ในไดเร็กทอรีการติดตั้ง JDK แอปพลิเคชันสามารถใช้ TestOne.class และ TestTwo ในไฟล์ Jerry.jar ได้โดยตรง . .ระดับ.