2011-02-08 14 views

उत्तर

34

मेरा सुझाव है कि आप ProcessBuilder का उपयोग करें और एक नया JVM प्रारंभ करें।

यहाँ पाने के लिए कुछ आप आरंभ है:

ProcessBuilder pb = new ProcessBuilder("/path/to/java", "-jar", "your.jar"); 
pb.directory(new File("preferred/working/directory")); 
Process p = pb.start(); 
+0

@aioobe मैं एकीकृत कर सकते हैं मूल कार्यक्रम में System.out?सवाल क्षमा करें लेकिन मैं जावा – vfgjrk

+1

में नया हूं, मुझे यकीन नहीं है कि मैं आपकी टिप्पणी समझता हूं, लेकिन आपको 'प्रक्रिया' से 'प्रक्रिया' वापस मिलती है जो आपको 'getInputStream'/'getOutputStream' प्रदान करती है। – aioobe

+0

ठीक है यह काम करता है! बहुत बहुत धन्यवाद – vfgjrk

3

पहले, अपने समस्या का विवरण थोड़ा स्पष्ट नहीं है। मैं समझ नहीं पा रहा हूं कि क्या आप अपने आवेदन में उपयोग करने के लिए जार फ़ाइल से कक्षाएं लोड करना चाहते हैं या जार में एक मुख्य फ़ाइल है जिसे आप चलाने के लिए चाहते हैं। मुझे लगता है कि यह दूसरा है।

यदि हां, तो आपके पास यहां बहुत सारे विकल्प हैं।

String filePath; //where your jar is located. 
Runtime.exec(" java -jar " + filepath); 

देखा ... आप जार फ़ाइल को चलाने बल्कि इससे बाहर वर्गों को लोड करने की जरूरत नहीं है, मुझे पता है: सरलतम एक निम्नलिखित होगा।

+1

कृपया जावा 1.5 और प्रोसेसबिल्डर की क्षमताओं में खुद को खींचें (लात मारना और चिल्लाना - यदि आवश्यक हो)। –

+0

धन्यवाद, यह काम कर रहा है। बहुत बहुत धन्यवाद। – Abdul

+0

यह समाधान 'प्रोसेसबिल्डर' के समान होगा (यदि आप बंद करना चाहते हैं, आदि), और आपको कम टाइप करने की आवश्यकता है। मेरे कारण में मुझे एक लॉन्चर की आवश्यकता होगी जो एक जार खोलने के बाद खुद को बंद कर दे, ताकि वह मेरे लिए पर्याप्त हो। – Hydro

3

खिड़कियों पर ऐसा करने के लिए एक और तरीका है:

Runtime.getRuntime().exec("cmd /c start jarFile"); 

इस तरह से आप अपनी प्रक्रिया की प्राथमिकता के रूप में अच्छी तरह से सेट कर सकते हैं (सामान्य/कम/आदि)

-1

1) सेट करें वातावरण चर से वर्ग पथ

2) फ़ोल्डर जहाँ आपके जार फ़ाइल मौजूद

०१२३५१६४१०६१ पर जाएं

3) कमांड प्रॉम्प्ट

जावा जार jarfilename

+1

सवाल यह है कि प्रोग्राम से जार फ़ाइल को कैसे चलाया जाए, न कि कमांड लाइन से इसे कैसे करें। – Henrik

10
Process proc = Runtime.getRuntime().exec("java -jar Validate.jar"); 
    proc.waitFor(); 
    // Then retreive the process output 
    InputStream in = proc.getInputStream(); 
    InputStream err = proc.getErrorStream(); 

    byte b[]=new byte[in.available()]; 
    in.read(b,0,b.length); 
    System.out.println(new String(b)); 

    byte c[]=new byte[err.available()]; 
    err.read(c,0,c.length); 
    System.out.println(new String(c)); 
+1

कृपया System.err.println (नया स्ट्रिंग (सी)) का उपयोग करें; त्रुटि संदेशों को मुद्रित करने के लिए। –

2

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

Desktop.getDesktop().open(new File("D:/FormsDesktop.jar")); 

जहां

new File("your path to jar") 

आशा है कि यह मदद करता है।

धन्यवाद।

+1

क्या यह विंडोज मशीन के बाहर काम करता है? – katzenhut

0
  1. आयात मुख्य वर्ग (जार फ़ाइल में प्रकट देखें)
  2. आह्वान स्थिर विधि तर्क के साथ मुख्य अपनी परियोजना के लिए जार पुस्तकालय जोड़े

    String args[] = {"-emaple","value"}; 
    PortMapperStarter.main(args); 
    
संबंधित मुद्दे