2009-06-03 18 views
72

से एक जार फ़ाइल कैसे आयात करें मैं जावा के साथ कमांड लाइन (विंडोज) से कक्षा (मुख्य विधि) को कॉल करने का प्रयास कर रहा हूं।
कक्षा अन्य वर्गों (अन्य जार) आयात करता है।जावा: कमांड लाइन

मुझे हमेशा एक वर्ग से "वर्ग नहीं मिला" मिलता है जो मेरा मुख्य कार्यक्रम आयात करता है।

यहाँ मैं क्या करने की कोशिश की है:

  • एक CLASSPATH env जोड़ें। पथ जहाँ संदर्भित lib बसता था (काम नहीं कर रहा)

  • मैं जब "java -jar myjar.jar" बुला कमांड लाइन से इन सभी विभिन्न मापदंडों के साथ की कोशिश की के साथ वर: "-classpath lib/", "-classpath ./lib/", "-classpath lib", "-cp lib/*", "-cp lib/\*" "-classpath lib/referenced-class.jar", "-classpath ./lib/referenced-class.jar" (lib जहां संदर्भित जार रहता है)

  • मैं अपने जार जहां अपने मुख्य वर्ग रहता है के अंदर सभी संदर्भित जार पैकेजिंग कोशिश की ...

  • और साथ वह सब, मैंने भी कोशिश की साथ प्रकट फ़ाइल के अंदर कक्षाएं निर्दिष्ट करें: Class-path referenced-jar.jar और मैं भी Class-path lib/referenced-jar.jar

उत्तर

116

के बजाय ; का उपयोग आप -jar कमांड लाइन तर्क के बिना चला सकता है चाहिए अगर आप मुख्य वर्ग का नाम पता करने के लिए हो आप दौड़ना चाहते हैं:

java -classpath .;myjar.jar;lib/referenced-class.jar my.package.MainClass 

यदि आप लिनक्स का उपयोग कर रहे हैं, तो आपको ";" के बजाय ":" का उपयोग करना चाहिए कक्षा में।

+0

woohoo, यह काम किया! धन्यवाद :) –

+0

मैंने इसे हमेशा समझने के लिए खोजा! – chotchki

+9

बस स्पष्ट होने के लिए, जार को स्पष्ट रूप से कक्षा में होना है। एक/lib dir निर्दिष्ट अक्षम है। – cmcginty

59

की कोशिश की आप java -jar साथ एक जार फ़ाइल चला रहे हैं, -classpath तर्क is ignored। तुम इतनी तरह अपने जार के मैनिफ़ेस्ट फ़ाइल में classpath सेट करने के लिए, की जरूरत है:

Class-Path: jar1-name jar2-name directory-name/jar3-name

जावा ट्यूटोरियल देखें: Adding Classes to the JAR File's Classpath

संपादित करें: मुझे लगता है कि आपने पहले ही मैनिफेस्ट में क्लास पथ सेट करने का प्रयास किया है, लेकिन क्या आप वाकई सही वाक्यविन्यास का उपयोग करते हैं? यदि आप दिखाए गए "Class-Path" के बाद ':' छोड़ देते हैं, तो यह काम नहीं करेगा।

+0

हाँ मैंने भी कोशिश की .. मेरे लिए काम नहीं किया :( –

+0

क्या आपने मेरा संपादन देखा? –

+0

हाँ, मैंने ":" भी कोशिश की ... मुझे नहीं पता कि निर्दिष्ट करने के लिए मैनिफेस्ट का उपयोग क्यों करें उन पर काम नहीं किया।मैंने कॉलेग्यूज से पूछा और उनके साथ सबकुछ फिर से देखा। –

3

आप ग्रहण में "रननेबल जार" के रूप में निर्यात करने का प्रयास कर सकते हैं। मुझे भी समस्याएं होती हैं, जब मैं "जार" के रूप में निर्यात करता हूं, लेकिन जब मैं "रननेबल जार" के रूप में निर्यात करता हूं तो मुझे कभी समस्या नहीं होती है।

+0

मुझे निर्यात विंडो में "रननेबल जार" विकल्प नहीं दिख रहा है, बस एक जेएआर फ़ाइल :( –

+0

ग्रहण का कौन सा संस्करण आप उपयोग कर रहे हैं? मेरे पास गैनीमेड में है .... यहां स्क्रैरशॉट: http://bufka.ath.cx/dslr/Eclipse-Export.png लेकिन मुझे नहीं पता, अगर यह डिफ़ॉल्ट सेटिंग्स है या नहीं। – cupakob

13

कोशिश

java -cp "your_jar.jar:lib/referenced_jar.jar" com.your.main.Main 

आप खिड़कियों पर हैं, तो आप :