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

วิธีโหลดคลาสในรันไทม์จากโฟลเดอร์หรือแพ็กเกจ Java

โดยใช้ CLASSPATH คุณสามารถโหลดคลาสใดๆ ในรันไทม์ได้

เหมือนกับไฟล์ซอร์ส .java ไฟล์ .class ที่คอมไพล์แล้วควรอยู่ในชุดของไดเรกทอรีที่สะท้อนชื่อแพ็กเกจ อย่างไรก็ตาม พาธไปยังไฟล์ .class ไม่จำเป็นต้องเหมือนกับพาธไปยังไฟล์ซอร์ส .java คุณสามารถจัดระเบียบไดเรกทอรีซอร์สและคลาสแยกกันได้ ดังนี้:

<path-one>\sources\com\apple\computers\Dell.java <path-two>\classes\com\apple\computers\Dell.class

โดยการทำเช่นนี้ สามารถให้สิทธิ์เข้าถึงไดเรกทอรีคลาสแก่อื่นๆ โปรแกรมเมอร์ได้โดยไม่เปิดเผยซอร์ส คุณยังต้องจัดการไฟล์ซอร์สและคลาสในลักษณะนี้ เพื่อให้คอมไพเลอร์และ Java Virtual Machine (JVM) หาได้ทุกประเภทที่โปรแกรมของคุณใช้

พาธเต็มไปยังไดเรกทอรีคลาส <path-two>\classes เรียกว่า classpath และตั้งค่าด้วยตัวแปรระบบ CLASSPATH ทั้งคอมไพเลอร์และ JVM สร้างพาธไปยังไฟล์ .class ของคุณโดยการเพิ่มชื่อแพ็กเกจเข้าไปใน classpath

สมมติ <path-two>\classes เป็น class path และชื่อแพ็กเกจคือ com.apple.computers แล้วคอมไพเลอร์และ JVM จะค้นหาไฟล์ .class ใน <path-two>\classes\com\apple\computers

Classpath อาจมีหลายพาธ พาธหลายพาธควรคั่นด้วย semicolon (;) ใน Windows หรือ colon (:) ใน Unix โดยค่าเริ่มต้น คอมไพเลอร์และ JVM ค้นหาไดเรกทอรีปัจจุบันและไฟล์ JAR ที่มีคลาสแพลตฟอร์ม Java ดังนั้นไดเรกทอรีเหล่านี้จึงอยู่ใน classpath โดยอัตโนมัติ