मेरे पास एक प्रोग्राम है जिसमें दो सरल जावा स्विंग फाइलें हैं।
मैं अपने प्रोग्राम के लिए एक निष्पादन योग्य JAR फ़ाइल कैसे बनाऊँ?
मेरे पास एक प्रोग्राम है जिसमें दो सरल जावा स्विंग फाइलें हैं।
मैं अपने प्रोग्राम के लिए एक निष्पादन योग्य JAR फ़ाइल कैसे बनाऊँ?
जवाबों:
एक जार फ़ाइल बस एक फाइल है जिसमें जावा फाइलों का संग्रह होता है। जार फ़ाइल को निष्पादन योग्य बनाने के लिए, आपको यह निर्दिष्ट करने की आवश्यकता है main
कि जार फ़ाइल में क्लास कहाँ है । उदाहरण कोड निम्नानुसार होगा।
public class JarExample {
public static void main(String[] args) {
javax.swing.SwingUtilities.invokeLater(new Runnable() {
public void run() {
// your logic here
}
});
}
}
अपनी कक्षाओं को संकलित करें। एक जार बनाने के लिए, आपको एक मेनिफेस्ट फ़ाइल ( MANIFEST.MF
) बनाने की आवश्यकता है । उदाहरण के लिए,
Manifest-Version: 1.0
Main-Class: JarExample
संकलित आउटपुट क्लास फ़ाइलें (JarExample.class, JarExample $ 1.class) और मैनिफ़ेस्ट फ़ाइल को एक ही फ़ोल्डर में रखें। कमांड प्रॉम्प्ट में, उस फ़ोल्डर पर जाएं जहां आपकी फाइलें रखी गई हैं, और जार कमांड का उपयोग करके जार बनाएं। उदाहरण के लिए (यदि आप अपनी प्रकट फ़ाइल को jexample.mf नाम देते हैं)
jar cfm jarexample.jar jexample.mf *.class
यह निष्पादन योग्य jarexample.jar बनाएगा।
jar cvfe jarexample.jar com.example.jar.JarExample *.class
में ग्रहण आप इस प्रकार यह बस कर सकते हैं:
अपने जावा प्रोजेक्ट पर राइट क्लिक करें और एक्सपोर्ट चुनें ।
चुनें जावा -> Runnable JAR फ़ाइल -> अगला।
लॉन्च कॉन्फ़िगरेशन का चयन करें और अपने मुख्य वर्ग के रूप में प्रोजेक्ट फ़ाइल चुनें
गंतव्य फ़ोल्डर का चयन करें जहाँ आप इसे सहेजना चाहते हैं और समाप्त पर क्लिक करें।
jar cvfe myjar.jar package.MainClass *.class
जहां MainClass
आपके साथ वर्ग है main
विधि, और package
है MainClass
के पैकेज।
ध्यान दें आपको ऐसा करने से पहले अपनी .java
फाइलों को .class
फाइलों में संकलित करना होगा।
c create new archive
v generate verbose output on standard output
f specify archive file name
e specify application entry point for stand-alone application bundled into an executable jar file
यह जवाब एक और जवाब पर पॉवर्सलेव की टिप्पणी से प्रेरित है।
Error: Could not find or load main class mtx.testClass Caused by: java.lang.ClassNotFoundException: mtx.testClass
testClass
आपकी किसी .class
फाइल में परिभाषित है ? सुनिश्चित करें कि आपने .java
इस आदेश को चलाने से पहले अपने स्रोत ( ) फ़ाइलों को संकलित किया है । इसके अलावा, आमतौर पर आपका वर्ग अपरकंपेलस होना चाहिए, आप TestClass
इसके बजाय इसका नाम बदलने का प्रयास कर सकते हैं ।
यदि आप मावेन का उपयोग करते हैं, तो अपनी pom.xml फ़ाइल में निम्न जोड़ें :
<plugin>
<!-- Build an executable JAR -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<mainClass>com.path.to.YourMainClass</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
तब तुम दौड़ सकते हो mvn package
। जार फ़ाइल लक्ष्य निर्देशिका के अंतर्गत स्थित होगी ।
इस प्रश्न का उत्तर देने में बहुत देर हो चुकी है। लेकिन अगर कोई इस उत्तर की खोज कर रहा है तो मैंने इसे बिना किसी त्रुटि के चलाया है।
सबसे पहले पथ पर मावेन को डाउनलोड और जोड़ना सुनिश्चित करें । [ mvn --version
] यदि आप सही तरीके से पथ में जुड़ गए हैं तो आपको इसके संस्करण विनिर्देश प्रदान करेंगे।
अब, निम्न कोड को मावेन प्रोजेक्ट में जोड़ें [ pom.xml
], निम्न कोड में अपनी मुख्य फ़ाइल प्रविष्टि बिंदु जैसे कि [ com.example.test.Test ] के लिए बदलें ।
<plugin>
<!-- Build an executable JAR -->
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>2.4</version>
<configuration>
<archive>
<manifest>
<mainClass>
your_package_to_class_that_contains_main_file .MainFileName</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
अब CMD
अपने प्रोजेक्ट में कमांड लाइन [ ] पर जाएं और टाइप करें mvn package
और यह एक ProjectName-0.0.1-SNAPSHOT.jar
अंडर फाइल को उत्पन्न करेगा जैसे कि target
डायरेक्टरी में कुछ ।
अब लक्ष्य निर्देशिका पर जाएँ cd target
।
अंत में टाइप करें java -jar jar-file-name.jar
और हाँ यह सफलतापूर्वक काम करना चाहिए यदि आपके कार्यक्रम में कोई त्रुटि नहीं है।