पैकेज बनाते समय, आपको पैकेज के लिए एक नाम चुनना चाहिए और उस नाम के साथ एक पैकेज स्टेटमेंट को हर सोर्स फाइल के शीर्ष पर शामिल करना चाहिए जिसमें वे क्लासेस, इंटरफेसेस, एन्यूमरेशन्स, और एनोटेशन टाइप्स हों जिन्हें आप पैकेज में शामिल करना चाहते हैं।
पैकेज स्टेटमेंट सोर्स फाइल में पहली लाइन होनी चाहिए। प्रत्येक सोर्स फाइल में केवल एक पैकेज स्टेटमेंट हो सकता है, और यह फाइल में सभी टाइप्स पर लागू होता है।
यदि पैकेज स्टेटमेंट उपयोग नहीं किया जाता है तो क्लास, इंटरफेसेस, एन्यूमरेशन्स, और एनोटेशन टाइप्स वर्तमान डिफ़ॉल्ट पैकेज में रखे जाएंगे।
पैकेज स्टेटमेंट्स वाले Java प्रोग्राम्स को कंपाइल करने के लिए, आपको -d ऑप्शन का उपयोग करना होगा जैसा कि नीचे दिखाया गया है।
javac -d Destination_folder file_name.java
फिर दिए गए पैकेज नाम के साथ एक फोल्डर निर्दिष्ट गंतव्य में बनाया जाता है, और कंपाइल्ड क्लास फाइल्स उस फोल्डर में रखी जाती हैं।
उदाहरण
आइए एक उदाहरण देखते हैं जो animals नामक पैकेज बनाता है। क्लास और इंटरफेस नामों के साथ टकराव से बचने के लिए पैकेज नामों में लोअरकेस अक्षरों का उपयोग करना एक अच्छी प्रथा है।
निम्नलिखित पैकेज उदाहरण में animals नामक इंटरफेस है:
/* File name : Animal.java */
package animals;
interface Animal {
public void eat();
public void travel();
}
अब, आइए उसी पैकेज animals में उपरोक्त इंटरफेस को इम्प्लीमेंट करें:
package animals;
/* File name : MammalInt.java */
public class MammalInt implements Animal {
public void eat() {
System.out.println("Mammal eats");
}
public void travel() {
System.out.println("Mammal travels");
}
public int noOfLegs() {
return 0;
}
public static void main(String args[]) {
MammalInt m = new MammalInt();
m.eat();
m.travel();
}
}
अब नीचे दिखाए अनुसार java फाइल्स को कंपाइल करें:
$ javac -d . Animal.java $ javac -d . MammalInt.java
अब वर्तमान डायरेक्टरी में animals नाम का एक पैकेज/फोल्डर बनाया जाएगा और ये क्लास फाइल्स इसमें रखी जाएंगी।

आप पैकेज के भीतर क्लास फाइल को निष्पादित कर सकते हैं और परिणाम प्राप्त कर सकते हैं:
$ java animals.MammalInt Mammal eats Mammal travels
पैकेज नामकरण कन्वेंशन
- सभी लोअरकेस:
com.company.project.module - डोमेन नाम उल्टा:
com.example.myapp - कोई स्पेशल कैरेक्टर्स नहीं, जावा कीवर्ड्स नहीं
- अर्थपूर्ण, पदानुक्रमित
पैकेज के साथ कंपाइल और रन - विस्तृत चरण
# डायरेक्टरी संरचना:
src/
com/
example/
Animal.java
MammalInt.java
# कंपाइल (src से)
javac -d ../out src/com/example/Animal.java
javac -d ../out src/com/example/MammalInt.java
# आउटपुट संरचना:
out/
com/
example/
Animal.class
MammalInt.class
# रन (out डायरेक्टरी से)
cd out
java com.example.MammalInt
इम्पोर्ट स्टेटमेंट्स
// विशिष्ट क्लास इम्पोर्ट import com.example.Animal; // पूरा पैकेज इम्पोर्ट import com.example.*; // फुली क्वालिफाइड नाम (इम्पोर्ट के बिना) com.example.Animal animal = new com.example.MammalInt();
पैकेज के लाभ
- नेमस्पेस प्रबंधन: नाम टकराव रोकता है
- एक्सेस कंट्रोल:
protected,default(पैकेज-प्राइवेट) विजिबिलिटी - संगठन: संबंधित क्लासेस समूहित
- पुन: उपयोग: आसान खोज और उपयोग
- मॉड्यूलरिटी: JARs, मॉड्यूल्स (Java 9+) का आधार
निष्कर्ष: पैकेज Java कोड को व्यवस्थित करने, नाम टकराव रोकने और एक्सेस कंट्रोल प्रदान करने का मूल तंत्र हैं। package स्टेटमेंट पहली लाइन होना चाहिए, -d फ्लैग से कंपाइल करें, फुली क्वालिफाइड नाम से रन करें।