एक निष्पादन योग्य जार फ़ाइल कैसे करें?


82

मेरे पास एक प्रोग्राम है जिसमें दो सरल जावा स्विंग फाइलें हैं।

मैं अपने प्रोग्राम के लिए एक निष्पादन योग्य JAR फ़ाइल कैसे बनाऊँ?


आप क्या पूछ रहे हो? जार को कैसे निष्पादित करें या जार से एक निष्पादन योग्य कैसे बनाएं (एक कमांड, जैसे run.cmd)?
एलिकएल्ज़िन-किलाका

जवाबों:


83

एक जार फ़ाइल बस एक फाइल है जिसमें जावा फाइलों का संग्रह होता है। जार फ़ाइल को निष्पादन योग्य बनाने के लिए, आपको यह निर्दिष्ट करने की आवश्यकता है 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 बनाएगा।


34
बस मेरे दो सेंट: आपको जरूरी नहीं कि एक मैनिफ़ेस्ट फ़ाइल बनाई जाए। के लिए जार उपयोगिता, यदि आप ध्वज को निर्दिष्ट के बजाय मीटर है, तो आप सिर्फ प्रवेश बिंदु बल्कि एक मैनिफ़ेस्ट फ़ाइल से आवेदन की निर्दिष्ट करने के लिए (जो है, मुख्य वर्ग), की जरूरत है। उदाहरण:jar cvfe jarexample.jar com.example.jar.JarExample *.class
पावर्सलेव

1
यदि आप MANIFEST.MF फ़ाइल बनाते हैं, तो पंक्ति विराम के साथ अंतिम पंक्ति समाप्त करना न भूलें। विंडोज पर अंत में एक खाली लाइन जोड़ें। अन्यथा अंतिम विशेषता जार फ़ाइल में नहीं बनेगी। इस विशेष मामले में मुख्य-वर्ग विशेषता गायब होगी।
डेविड

36

में ग्रहण आप इस प्रकार यह बस कर सकते हैं:

अपने जावा प्रोजेक्ट पर राइट क्लिक करें और एक्सपोर्ट चुनें ।

चुनें जावा -> Runnable JAR फ़ाइल -> अगला।

लॉन्च कॉन्फ़िगरेशन का चयन करें और अपने मुख्य वर्ग के रूप में प्रोजेक्ट फ़ाइल चुनें

गंतव्य फ़ोल्डर का चयन करें जहाँ आप इसे सहेजना चाहते हैं और समाप्त पर क्लिक करें।


लॉन्च कॉन्फ़िगरेशन: <MainClasssName> - <ProjectName>
corlaez

17

यहाँ यह एक पंक्ति में है:

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इसके बजाय इसका नाम बदलने का प्रयास कर सकते हैं ।
रिवर

4

यदि आप मावेन का उपयोग करते हैं, तो अपनी 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। जार फ़ाइल लक्ष्य निर्देशिका के अंतर्गत स्थित होगी ।


ऊपर से एक प्रकार।
विश्व रत्न

0

इस प्रश्न का उत्तर देने में बहुत देर हो चुकी है। लेकिन अगर कोई इस उत्तर की खोज कर रहा है तो मैंने इसे बिना किसी त्रुटि के चलाया है।

सबसे पहले पथ पर मावेन को डाउनलोड और जोड़ना सुनिश्चित करें । [ 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और हाँ यह सफलतापूर्वक काम करना चाहिए यदि आपके कार्यक्रम में कोई त्रुटि नहीं है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.