मैं जावा प्रोग्राम से स्थानीय जार फ़ाइल कैसे चला सकता हूं?जावा प्रोग्राम से .jar फ़ाइल निष्पादित करें
जार फ़ाइल जावा कॉलर प्रोग्राम के क्लास-पथ में नहीं है।
मैं जावा प्रोग्राम से स्थानीय जार फ़ाइल कैसे चला सकता हूं?जावा प्रोग्राम से .jar फ़ाइल निष्पादित करें
जार फ़ाइल जावा कॉलर प्रोग्राम के क्लास-पथ में नहीं है।
मेरा सुझाव है कि आप ProcessBuilder
का उपयोग करें और एक नया JVM प्रारंभ करें।
यहाँ पाने के लिए कुछ आप आरंभ है:
ProcessBuilder pb = new ProcessBuilder("/path/to/java", "-jar", "your.jar");
pb.directory(new File("preferred/working/directory"));
Process p = pb.start();
पहले, अपने समस्या का विवरण थोड़ा स्पष्ट नहीं है। मैं समझ नहीं पा रहा हूं कि क्या आप अपने आवेदन में उपयोग करने के लिए जार फ़ाइल से कक्षाएं लोड करना चाहते हैं या जार में एक मुख्य फ़ाइल है जिसे आप चलाने के लिए चाहते हैं। मुझे लगता है कि यह दूसरा है।
यदि हां, तो आपके पास यहां बहुत सारे विकल्प हैं।
String filePath; //where your jar is located.
Runtime.exec(" java -jar " + filepath);
देखा ... आप जार फ़ाइल को चलाने बल्कि इससे बाहर वर्गों को लोड करने की जरूरत नहीं है, मुझे पता है: सरलतम एक निम्नलिखित होगा।
कृपया जावा 1.5 और प्रोसेसबिल्डर की क्षमताओं में खुद को खींचें (लात मारना और चिल्लाना - यदि आवश्यक हो)। –
धन्यवाद, यह काम कर रहा है। बहुत बहुत धन्यवाद। – Abdul
यह समाधान 'प्रोसेसबिल्डर' के समान होगा (यदि आप बंद करना चाहते हैं, आदि), और आपको कम टाइप करने की आवश्यकता है। मेरे कारण में मुझे एक लॉन्चर की आवश्यकता होगी जो एक जार खोलने के बाद खुद को बंद कर दे, ताकि वह मेरे लिए पर्याप्त हो। – Hydro
निम्नलिखित में से कुछ उपयोगी हो सकता है?
http://download.oracle.com/javase/tutorial/deployment/jar/jarclassloader.html
खिड़कियों पर ऐसा करने के लिए एक और तरीका है:
Runtime.getRuntime().exec("cmd /c start jarFile");
इस तरह से आप अपनी प्रक्रिया की प्राथमिकता के रूप में अच्छी तरह से सेट कर सकते हैं (सामान्य/कम/आदि)
1) सेट करें वातावरण चर से वर्ग पथ
2) फ़ोल्डर जहाँ आपके जार फ़ाइल मौजूद
०१२३५१६४१०६१ पर जाएं3) कमांड प्रॉम्प्ट
जावा जार jarfilename
सवाल यह है कि प्रोग्राम से जार फ़ाइल को कैसे चलाया जाए, न कि कमांड लाइन से इसे कैसे करें। – Henrik
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));
कृपया System.err.println (नया स्ट्रिंग (सी)) का उपयोग करें; त्रुटि संदेशों को मुद्रित करने के लिए। –
कभी आप केवल इस एक लाइन कोड का उपयोग करके चाहते हैं तो आप कहाँ से एक जार फ़ाइल चला सकते हैं के माध्यम से निम्नलिखित कमांड चलाएँ।
Desktop.getDesktop().open(new File("D:/FormsDesktop.jar"));
जहां
new File("your path to jar")
आशा है कि यह मदद करता है।
धन्यवाद।
क्या यह विंडोज मशीन के बाहर काम करता है? – katzenhut
आह्वान स्थिर विधि तर्क के साथ मुख्य अपनी परियोजना के लिए जार पुस्तकालय जोड़े
String args[] = {"-emaple","value"};
PortMapperStarter.main(args);
@aioobe मैं एकीकृत कर सकते हैं मूल कार्यक्रम में System.out?सवाल क्षमा करें लेकिन मैं जावा – vfgjrk
में नया हूं, मुझे यकीन नहीं है कि मैं आपकी टिप्पणी समझता हूं, लेकिन आपको 'प्रक्रिया' से 'प्रक्रिया' वापस मिलती है जो आपको 'getInputStream'/'getOutputStream' प्रदान करती है। – aioobe
ठीक है यह काम करता है! बहुत बहुत धन्यवाद – vfgjrk