2009-03-02 25 views
19

में निष्पादन योग्य जार का निर्माण मैं नेटबीन 6.5 का उपयोग कर रहा हूं और किसी कारण से यह निष्पादन योग्य जार "बॉक्स से बाहर" नहीं पैदा करेगा।नेटबीन

मैंने अपनी परियोजना को प्रोजेक्ट गुणों "रन" मेनू में मुख्य श्रेणी परिभाषित मुख्य प्रोजेक्ट के रूप में सेट किया है और जब मैं इसे चलाने के लिए F6 दबाता हूं तो यह निर्दोष रूप से काम करता है।

मैंने मैनिफेस्ट फ़ाइल को देखा और वास्तव में वहां मुख्य वर्ग को परिभाषित नहीं किया, और लाइब्रेरी निर्भरताओं को भी छोड़ दिया।



क्या मुझे कुछ याद आ रही है? निष्पादन योग्य जार फ़ाइलों का उत्पादन करने के लिए कोई तरीका है (मैन्युअल रूप से मैनिफेस्ट फ़ाइल को बदलने के अलावा)?

संपादित करें: हाँ, मैं साफ करने की कोशिश की और फिर से बनाने और यह एक ही MANIFEST.MF

Manifest-Version: 1.0 
Ant-Version: Apache Ant 1.7.1 
Created-By: 10.0-b23 (Sun Microsystems Inc.) 
+0

विषम। बहुत यकीन है कि NetBeans प्रति डिफ़ॉल्ट निष्पादन योग्य जार बनाता है। जब आप कोई प्रोजेक्ट चलाते हैं तो यह मेरे लिए कंसोल आउटपुट में भी बताता है। नेटबीन काम पर नहीं है इसलिए मैं वास्तव में दोबारा जांच नहीं कर सकता :( – willcodejavaforfood

+2

प्रोजेक्ट निर्देशिका में manifest.mf को .jar फ़ाइल में verbatim कॉपी नहीं किया गया है। मुख्य श्रेणी विशेषता और कोई लाइब्रेरी पथ जोड़े जाते हैं जब आप "साफ करते हैं और बिल्ड करें "प्रोजेक्ट –

+0

हां, यह डिफ़ॉल्ट रूप से निष्पादन योग्य जार बनाता है। साफ और पुनर्निर्माण करने का प्रयास करें। –

उत्तर

2

आप परियोजना को साफ करने और पुनर्निर्माण किया साथ जिले फ़ोल्डर में जार का उत्पादन किया, अभी भी? ऐसा लगता है जैसे आप इसे सही कर रहे हैं। यहाँ कुछ संदर्भों सिर्फ मामले में:

http://www.velocityreviews.com/forums/t141385-how-to-create-executable-jar-in-netbeans-ide.html http://dr.berkeley.edu/REM/wiki/index.php/Making_a_Java_executable_jar_in_Netbeans

0

अजीब वास्तव में, यह इसके classpath सहित बॉक्स से बाहर करना चाहिए।

क्या आपने पिछले संस्करण से अपग्रेड किया था? अपग्रेड करते समय, एनबी प्रोजेक्ट फाइलों को अपग्रेड करेगा लेकिन कभी-कभी यह माइग्रेशन अच्छी तरह से नहीं किया जाता है और इस तरह का परिदृश्य पॉप अप होता है। बस प्रोजेक्ट को बंद करें, nbproject dir को nbproject_old पर पुनर्नामित करें और नई प्रोजेक्ट करें -> मौजूदा स्रोतों के साथ जावा प्रोजेक्ट करें। मुख्य वर्ग को फिर से सेट करें और निर्भरता जोड़ें और पुनः प्रयास करें।

0

नेटबीन में एक और दृष्टिकोण पूरी तरह विकसित करना, यूनिट परीक्षण चलाने आदि है, लेकिन फिर अपने "वास्तविक" निर्माण के लिए एक मेवेन या चींटी स्क्रिप्ट का उपयोग करें। ऐसा लगता है कि इस तरह के निर्माण उपकरण आपको चीजों के निर्माण के तरीके पर अधिक नियंत्रण देते हैं, और यह आपको स्वचालित बनाने की सुविधा देता है।

Maven के लिए, आप प्रविष्टियों प्रकट करने के लिए आसानी से Maven जार प्लगइन का उपयोग कर जोड़ सकते हैं:

http://maven.apache.org/plugins/maven-jar-plugin/

0

गोटो फ़ाइलों को देखने। रूट निर्देशिका में manifest.mf बनाएँ।

/project_folder 
    build.xml 
    manifest.mf(edit here) 
    /dist 
    /src 
    /test 
    /build 
+1

क्षमा करें, लेकिन मैंने कोशिश की और NetBeans जो मैंने प्रकट किया है उसे प्रकट करें – Dani

1

यदि आप अपनी परियोजना को साफ और निर्माण करते हैं तो इसे "dist" निर्देशिका में जार बनाना चाहिए।

इसे आपकी प्रोजेक्ट निर्देशिका के शीर्ष स्तर पर manifest.mf बनाना चाहिए।

1

मैं वास्तव में एक ही मुद्दे पर चलने के बाद इस पृष्ठ पर आया, मैंने manifest.mf फ़ाइल संपादित की लेकिन परिवर्तन MANIFEST.MF फ़ाइल में दिखाई नहीं दे रहे थे। मुझे यह मुद्दा मिला कि मैं सोच रहा था और सोचा था कि अगर मैं प्रासंगिक हूं तो मैं जानकारी के साथ पास करूंगा।

मैं क्या गलत कर रहा था, मेरे पास प्रोजेक्ट नहीं था जो मैं मुख्य परियोजना के रूप में सेट पर काम कर रहा था, इसलिए जब मैं सही मैनिफेस्ट को संपादित कर रहा था, तो मैं गलत परियोजना संकलित कर रहा था।

तो मुझे लगता है कि आपने कहानी की छोटी सी जांच की और देखा कि क्या आपके पास manifest.mf फ़ाइल के लिए चयनित सही प्रोजेक्ट है या नहीं?

1

हो सकता है कि आपने मौजूदा स्रोतों के साथजावा एप्लिकेशन के बजाय जावा प्रोजेक्ट बनाया हो?

मुझे इसी तरह की समस्या थी और नया जावा एप्लिकेशन बनाना और फिर मैन्युअल रूप से फाइल फ़ाइलों की प्रतिलिपि बनाने से समस्या हल हो गई - सबकुछ "बॉक्स से बाहर" काम करता था।

1

मुझे अनुभव था कि निर्माण प्रक्रिया अलग-अलग है, परियोजना प्रकार के आधार पर।

मुझे लगता है कि आपने "जावा क्लास लाइब्रेरी" प्रोजेक्ट बनाया है।

तो बस "जावा एप्लिकेशन" प्रोजेक्ट बनाएं, फिर सभी वर्गों को इसमें विलय करें।

फिर, नेटबीन्स ओवरराइड नहीं करेंगे, लेकिन"manifest.mf" को JAR में बढ़ाएं।

बेशक, यह एक बेवकूफ नेटबीन्स बग है। बेशक यह मुख्य कक्षाओं को बाद में जोड़ना संभव होना चाहिए।

संपादित करें: कृपया मेरा दूसरा उत्तर देखें। ये तो और आसान है।

0

एक बेहतर समाधान:

manifest.file=manifest.mf 

manifest.mf परियोजना के रूट में हो सकता है और सिर्फ शामिल करना चाहिए::

Manifest-Version: 1.0 
X-COMMENT: Main-Class will be added automatically by build 

वर्क्स

संपादित nbproject/project.properties और प्रविष्टि जोड़ने । का परीक्षण किया।

5

इस प्रयास करें:

  1. राइट "परियोजनाओं" पैनल पर अपनी परियोजना क्लिक करें, "गुण" नई विंडो में "रन" पर

  2. क्लिक करें।

  3. "मुख्य कक्षा:" फ़ील्ड संपादित करें (ब्राउज़ पर क्लिक करें)।

इस तरह आप मुख्य कक्षा का चयन करेंगे जो आपके आवेदन के लिए प्रवेश बिंदु है और मेनिफेस्ट सही ढंग से बनाया जाएगा।

4

बहुत सरल .jar और।jad फ़ाइलों

मैं भी जवाब के लिए खोज रहा था dist फ़ोल्डर में देखते हैं और हल http://forums.netbeans.org/ptopic3465.html

से यह एक :)

+0

+1 यह उत्तर होना चाहिए। मेरी समस्या हल –

6

आप Maven विधानसभा प्लगइन का उपयोग कर रहे हैं, तो हो गया और साथ एक निष्पादन योग्य जार निर्माण करना चाहते हैं

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <configuration> 
    <!-- ... --> 
    <archive> 
     <manifest> 
     <mainClass>your.app.SampleClass</mainClass> 
     </manifest> 
    </archive> 
    </configuration> 
</plugin> 

स्रोत:: Maven Assembly Plugin Usage

निर्भरता, आप अपने pom.xml में Maven-विधानसभा-प्लगइन खंड के विन्यास के इस भाग को जोड़ने की आवश्यकता
7

मुझे नेटवेन्स 7.2.1 में एक मेवेन जावा एप्लिकेशन प्रोजेक्ट के साथ एक ही समस्या थी।

<plugin> 
    <artifactId>maven-assembly-plugin</artifactId> 
    <version>2.4</version> 
    <configuration> 
     <descriptorRefs> 
      <descriptorRef>jar-with-dependencies</descriptorRef> 
     </descriptorRefs> 
     <archive> 
      <manifest> 
       <mainClass>your.app.MainClass</mainClass> 
      </manifest> 
     </archive> 
    </configuration> 
    <executions> 
     <execution> 
      <id>make-assembly</id> 
      <phase>package</phase> 
      <goals> 
       <goal>single</goal> 
      </goals> 
     </execution> 
    </executions> 
</plugin> 

वैकल्पिक विधि में एक जावा आवेदन परियोजना का निर्माण करना है: pom.xml फ़ाइल को संशोधित myrho के जवाब देने के लिए एक ट्वीक साथ maven assembly plugin शामिल करने के लिए (पूर्वनिर्धारित वर्णनकर्ता "जार-साथ-निर्भरता" को संदर्भित करने की जरूरत है) नेटबीन जो मेवेन का उपयोग नहीं करता है। फ़ाइल का चयन करें -> प्रोजेक्ट गुण -> बिल्ड -> पैकेजिंग और "निर्भर पुस्तकालयों की प्रतिलिपि बनाएँ" चेकबॉक्स को चेक करें।

0

7.3 में केवल संपत्ति/बिल्ड/पैकेज/कॉपी निर्भर पुस्तकालयों और मुख्य वर्ग (चयनित लक्ष्य के आधार पर) सक्षम होने पर भवन में प्रकट होने के लिए जोड़ा जाएगा।

0

मैन्युअल पैकेज NetBeans आईडीई 8.0.2 के साथ निर्माण ...

  1. परियोजना नाविक में बाध्य करने के लिए अपने < परियोजना का विस्तार> और दायां क्लिक परियोजना फ़ाइलें/pom.xml
  2. क्लिक करें भागो Maven/लक्ष्य
  3. प्रकार "पैकेज" लक्ष्य क्षेत्र में
  4. ठीक क्लिक करें

उत्पादन खिड़की तो (Mac पर) दिखाएगा ...

Building jar: /Users/<username>/NetBeansProjects/<project>/target/<project>-1.0-SNAPSHOT.jar 
0

साथ ठीक neatbean आप नीचे दिए गए निम्न चरणों का पालन कर सकते हैं: 1. राइट क्लिक करें नाम परियोजना आइटम सेट विन्यास चुनें और चुनें अनुकूलित
2. भागो चुनें और नोटिस मुख्य क्लास
3. चुनें भौंहें ई और यदि आप दौड़ना चाहते हैं तो सेट क्लास। ठीक क्लिक करने के बाद।
4. समाप्त करें।