विंडोज पर जार फ़ाइल चलाना


228

मेरे पास एक JAR फ़ाइल है, जिसका नाम helloworld.jar है । इसे चलाने के लिए, मैं एक कमांड-लाइन विंडो में निम्न कमांड निष्पादित कर रहा हूं:

java -jar helloworld.jar

यह ठीक काम करता है, लेकिन मैं इसके बजाय डबल-क्लिक के साथ इसे कैसे निष्पादित करूं? क्या मुझे कोई सॉफ़्टवेयर स्थापित करने की आवश्यकता है?


जवाबों:


123

सबसे सरल मार्ग संभवतः जावा रनटाइम एनवायरनमेंट (JRE) को अपग्रेड या री-इंस्टॉल कर रहा है।

या यह:

  • Windows Explorer खोलें, उपकरण से 'फ़ोल्डर विकल्प ...' चुनें
  • फ़ाइल प्रकार टैब पर क्लिक करें, नीचे स्क्रॉल करें और JAR फ़ाइल प्रकार चुनें।
  • उन्नत बटन दबाएं।
  • फ़ाइल प्रकार संपादित करें संवाद बॉक्स में, क्रिया बॉक्स में खुला चुनें और संपादित करें पर क्लिक करें ...
  • ब्राउज़ बटन दबाएँ और जावा दुभाषिया javaw.exe के स्थान पर नेविगेट करें।
  • कार्रवाई के क्षेत्र में प्रदर्शन करने के लिए उपयोग किए जाने वाले एप्लिकेशन में, कुछ समान प्रदर्शित करने की आवश्यकता होती है C:\Program Files\Java\j2re1.4.2_04\bin\javaw.exe" -jar "%1" %(नोट: 'जबड़े' से शुरू होने वाला हिस्सा बिल्कुल उसी तरह होना चाहिए, पथ नाम का दूसरा भाग आपके द्वारा उपयोग किए जा रहे जावा के संस्करण के आधार पर भिन्न हो सकता है। ) तब तक ओके बटन दबाएं जब तक कि सभी संवाद बंद न हो जाएं।

जो यहाँ से चुराया गया था: http://windowstipoftheday.blogspot.com/2005/10/setting-jar-file-association.html


13
मुझे लगता है कि आसान तरीका किसी भी jar फ़ाइल को राइट क्लिक करना है, "जावा रनटाइम वातावरण" के साथ खुला और चुना हुआ है। :)
कासेम

ऐसा करने से, हमेशा मुझे यह त्रुटि मिलती है "जावा प्लेटफ़ॉर्म एसई बाइनरी ने काम करना बंद कर दिया है" ... क्या कोई मदद कर सकता है, क्या मुद्दा हो सकता है?
फैजान

1
@ फैज़ान - आपका मुद्दा एक अलग समस्या की तरह लगता है। मुझे "जावा प्लेटफ़ॉर्म एसई बाइनरी ने काम करना बंद कर दिया" के लिए कुछ एसओ और Google परिणाम दिखाई देते हैं। मैं उन लोगों की जाँच करूंगा।
ब्रायन केली

26
7 में जीत में फ़ोल्डर विकल्पों में कोई फ़ाइल प्रकार टैब नहीं है
राडु सिमियोनेस्कु

79

विंडोज विस्टा या विंडोज 7 में, मैनुअल फाइल एसोसिएशन एडिटर को हटा दिया गया है।

सबसे आसान तरीका जारफिक्स को चलाना है , जो एक छोटा लेकिन शक्तिशाली फ्रीवेयर टूल है। बस इसे चलाएं और आपके जावा ऐप्स वापस आ गए हैं ... फिर से डबल-क्लिक करने योग्य।


टिप के लिए धन्यवाद, अगर केवल इन छोटे (संयुक्त राष्ट्र) "प्रयोग करने योग्य" नए बक्से से छुटकारा पाने का एक तरीका था
LoG

55

यदि आपको अपनी .jar फ़ाइल को वितरित करने और इसे अन्य लोगों के विंडोज कंप्यूटर पर चलाने योग्य बनाने की आवश्यकता है, तो आप कमांड प्रॉम्प्ट में इस तरह की एक साधारण .bat फ़ाइल बना सकते हैं:

java -jar MyJavaTool.jar

और .bat फ़ाइल को अपनी .jar फ़ाइल के समान निर्देशिका में रखें।


लेकिन .bat को कैसे अंजाम दिया जाता है? क्या यह जावा-एप्लिकेशन को कमांड-लाइन सत्र खोलने के लिए भी समान रणनीति होगी?
अनगेहुअर

1
खैर नहीं, आप सिर्फ बैट फाइल खोलेंगे। मुझे यकीन नहीं है कि मैं आपके सवाल को समझ सकता हूँ।

26

यदि आपके पास उदाहरण.जर नामक एक जार फ़ाइल है, तो इन नियमों का पालन करें:

  1. एक खोलो notepad.exe
  2. लिखो : java -jar Example.jar
  3. इसे विस्तार के साथ सहेजें .bat
  4. इसे उस डायरेक्टरी में कॉपी करें जिसमें .jarफाइल है
  5. अपनी .jarफ़ाइल चलाने के लिए इसे डबल क्लिक करें

4
1) यह मैक पर काम नहीं करेगा। या यूनिक्स। 2) यह एक अनावश्यक फाइल बनाता है। 3) बेहतर जवाब 2 साल पहले प्रदान किए गए थे। 4) .. और वह शब्द 'आप' है।
एंड्रयू थॉम्पसन

विंडोज पर जार चलाने का बढ़िया तरीका! यह कमांड लाइन इनपुट भी नहीं छिपाता है, इसलिए मैं यह देखने में सक्षम था कि मेरा जार ऐसा क्यों नहीं चल रहा था जैसा मैंने सोचा था कि इसे करना चाहिए। धन्यवाद।
जो

15

कमांड प्रॉम्प्ट में रन करने योग्य जार फ़ाइलों को शुरू करते समय इसका एक दिलचस्प दुष्प्रभाव एक समस्या का कारण बनता है।

यदि आप कोशिश करते हैं (कमांड प्रॉम्प्ट में):

jarfile.jar parameter

कोई खुशी नहीं, क्योंकि यह निम्नलिखित के लिए अनुवादित किया जा रहा है (जो काम नहीं करता है):

javaw.exe -jar jarfile.jar parameter

हालाँकि, निम्न आदेश काम करता है:

java.exe -jar jarfile.jar parameter

यदि आप फ़ाइल प्रबंधक में एसोसिएशन को ऊपर वर्णित अनुसार बदलते हैं:

"C:\Program Files\Java\j2re1.4.2_04\bin\java.exe" -jar "%1" %*

फिर आप टाइप कर सकते हैं:

jarfile.jar parameter

कमांड प्रॉम्प्ट में और यह अब काम करेगा!

EDIT: (हालांकि तब आपको एक ब्लैक कंसोल विंडो मिलती है जब आप एक फॉर्म आधारित (नॉन कंसोल) जावा ऐप चलाते हैं, तो यह एक आदर्श वीडियो नहीं है)

यदि आप इन जार फ़ाइलों को विंडोज़ में डबल क्लिक करके चलाते हैं, तो कोई भी पैरामीटर पारित नहीं होगा, इसलिए आपके जावा कोड को स्टैक ओवरफ़्लो अपवाद को संभालने की आवश्यकता होती है और इसमें अंत में एक "कुंजी दबाएं" फ़ंक्शन शामिल होता है या विंडो बस गायब हो जाएगी।

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

यहां एक एकल, सुसंगत समाधान नहीं है, लेकिन आपको किसी अन्य कंसोल एप्लिकेशन के साथ भी यही समस्या होगी।

एक विंडोज़ फ्रीवेयर एप्लीकेशन है, जिसे "बैट टू एक्स" कहा जाता है, जिसका उपयोग आप एक .bat फ़ाइल से इसमें उपयुक्त कमांड लाइन के साथ एक एक्स फ़ाइल बनाने के लिए कर सकते हैं। आप इस एप्लिकेशन के साथ जार फ़ाइल को एक्सई में एम्बेड कर सकते हैं, और इसे तब साफ कर सकते हैं जब यह चल रहा हो, तो यह एक और अधिक सुंदर समाधान हो सकता है।


11

Cmd पर पहला सेट पथ (कमांड प्रॉम्प्ट):

set path="C:\Program Files\Java\jre6\bin"

फिर टाइप करें

java -jar yourProgramname.jar 

9

Windows XP में * आपको सिर्फ 2 शेल कमांड की आवश्यकता है:

   C:\>ftype myjarfile="C:\JRE1.6\bin\javaw.exe" -jar "%1" %* 
   C:\>assoc .jar=myjarfile  

स्पष्ट रूप से JRE के लिए सही पथ का उपयोग करना और इसके बजाय कोई भी नाम जो आप चाहते हैं myjarfile

बस वर्तमान सेटिंग्स की जाँच करने के लिए:

   C:\>assoc .jar  
   C:\>ftype jarfile  

इस बार पहले कमांड द्वारा दिए गए मान का उपयोग करते हुए, यदि कोई हो, इसके बजाय jarfile

* विंडोज 7 के साथ परीक्षण नहीं किया गया


1
एक अनाम उपयोगकर्ता ने विंडोज 7 (JRE 7) के साथ इसका परीक्षण किया। वे कहते हैं कि यह काम करता है यदि आप cmd को व्यवस्थापक के रूप में चलाते हैं।
जेरेमी स्टीन

मेरी नजर में सबसे अच्छा समाधान। विंडोज़ 10 तक काम करता है। कमांड विशेषाधिकार के साथ कमांड प्रॉम्प्ट विंडो में कमांड टाइप और assoc चलना चाहिए।
सिक्सड डबलफाइवट्रीट्वोवन

7

उपयोगकर्ता को अपने पीसी पर परिवर्तन करने की आवश्यकता के बिना रास्ता है। Runtime.getRuntime.exec () हमें cmd.exe शुरू करने और इसके अंदर कमांड निष्पादित करने की अनुमति देता है। इसलिए, जब उपयोगकर्ता क्लिक करें .jar फ़ाइल को कमांड प्रॉम्प्ट में चलाने के लिए जावा प्रोग्राम के लिए संभव है।

public static void main(String[] args) throws IOException {
    if(args.length == 0) {
        Process p = Runtime.getRuntime().exec("cmd.exe /c start java -jar " + (new File(NameOfClass.class.getProtectionDomain().getCodeSource().getLocation().getPath())).getAbsolutePath() + " cmd");
    } else {
        //code to be executed
    }
}

6

अन्य सभी सुझावों के अलावा, एक और बात है जिस पर आपको विचार करने की आवश्यकता है। क्या आपका helloworld.jar एक सांत्वना कार्यक्रम है? यदि यह है, तो मुझे विश्वास नहीं है कि आप इसे डबल-क्लिक करने योग्य जार फ़ाइल में बनाने में सक्षम होंगे। कंसोल प्रोग्राम अपने इनपुट और आउटपुट के लिए नियमित cmd.exe शेल विंडो का उपयोग करते हैं। आमतौर पर जार "लॉन्चर" javaw.exe से जुड़ा होता है, जो कमांड-शेल विंडो नहीं बनाता है।


5

मैं विंडोज 7 x64 चला रहा हूं और इनमें से किसी भी सुधार का उपयोग करने में असमर्थ था।

यह एक मेरे लिए काम किया:

http://thepanz.netsons.org/post/windows7-jar-file-association-broken-with-nokia-ovi

एक संग्रह है जिसे आप चलाने के लिए .bat फ़ाइल युक्त डाउनलोड कर सकते हैं, लेकिन वास्तविक javaw.exe के पथ की जाँच करें !!!!


4

Regedit में, खोलें HKEY_CLASSES_ROOT\Applications\java.exe\shell\open\command

java.exeपथ और " %1" तर्क के बीच बाईं ओर डिफ़ॉल्ट जोड़ें और -jar पर डबल क्लिक करें ।


यही था वह। धन्यवाद। बाकी सभी चीजों से मदद नहीं मिली।
raedma

3

आप कुछ चीजों की जाँच करना चाहते हैं; यदि यह आपकी स्वयं की जार फ़ाइल है, तो सुनिश्चित करें कि आपने प्रकट में एक मुख्य वर्ग को परिभाषित किया है। जब से हम जानते हैं कि आप इसे कमांड लाइन से चला सकते हैं, तो दूसरी बात यह है कि विंडोज़ शॉर्टकट बनाएं, और गुणों को संशोधित करें (आपको चारों ओर देखना होगा, मेरे पास देखने के लिए विंडोज मशीन नहीं है) ताकि यह जिस कमांड को खुले में निष्पादित करता है वह आपके द्वारा उल्लिखित जावा-कमांड है।

दूसरी बात: अगर कुछ उलझन में नहीं है, तो इसे वैसे भी काम करना चाहिए; जाँच करें और सुनिश्चित करें कि आपके पास .jar एक्सटेंशन के साथ जावा जुड़ा हुआ है।


1

Unfortunatelly, यह इतना आसान नहीं है क्योंकि Microsoft ने हाल के विंडोज संस्करणों में उन्नत फ़ाइल एसोसिएशन संवाद को हटा दिया है। - नए विंडोज संस्करणों के साथ आप केवल उस एप्लिकेशन को निर्दिष्ट कर सकते हैं, जिसका उपयोग .jar फ़ाइल खोलने के लिए किया जा रहा है।

विंडोज पर फिक्सिंग .jar फ़ाइल खोलने के लिए दो चरणों की आवश्यकता होती है।

  1. नियंत्रण कक्ष खोलें, और "डिफ़ॉल्ट प्रोग्राम -> सेट एसोसिएशन" चुनें। वहाँ .jar एक्सटेंशन ( निष्पादन योग्य JAR फ़ाइल ) ढूँढें , और इस एक्सटेंशन को खोलने के लिए जावा को डिफ़ॉल्ट प्रोग्राम के रूप में चुनें। इसे संभवतः " जावा प्लेटफॉर्म (एसई) " के रूप में सूचीबद्ध किया जाएगा । एक तेज विकल्प शायद एक .jar फ़ाइल पर सीधे राइट-क्लिक है, और फिर "बदलें ..." बटन पर क्लिक करके संबंधित प्रोग्राम को बदल दें।

  2. अब regedit को ओपन करें, और की को ओपन करें HKEY_CLASSES_ROOT\jarfile\shell\open\command। हमारे लिए लक्की, हम (Default)मान के लिए वहां पैरामीटर निर्दिष्ट कर सकते हैं । मेरे विंडोज सिस्टम पर यह दिखता है: C:\app\32\jre7\bin\javaw.exe" -jar "%1" %*लेकिन ज्यादातर मामलों में यह निम्नलिखित स्ट्रिंग है:C:\Program Files\Java\jre7\bin\javaw.exe" -jar "%1" %*

टिप्पणियाँ:

  • java.exeवहाँ का उपयोग न करें क्योंकि यह खोल खिड़की खोल देगा।
  • Jarfix इस थ्रेड में उल्लिखित उपकरण सबसे अधिक संभावना है आप के लिए रजिस्ट्री संशोधन से ज्यादा कुछ नहीं है। मैं मैनुअल रजिस्ट्री परिवर्तन विधि पसंद करता हूं, इसका मतलब है कि सिस्टम व्यवस्थापक नेटवर्क में सभी वर्कस्टेशनों के लिए रजिस्ट्री परिवर्तन को "पुश" कर सकता है।

1

मुझे विंडोज 10 में भी यही समस्या थी। मैंने इसे " helloworld.jar " पर righ- क्लिक का उपयोग करके तय किया और गुणों पर जाएं और "Opens with:" के तहत परिवर्तन बटन पर क्लिक करें और " इस पीसी पर किसी अन्य एप्लिकेशन को देखें " का चयन करें । " Open with ... " डायलॉग बॉक्स में, अपने पीसी पर अपने जावा फोल्डर स्थान पर जाएं और संबंधित jdk फ़ोल्डर खोलें और फिर बिन फ़ोल्डर खोलें और वहां से " javaw.exe " चुनें । तो अगली बार अपने " helloworld.jar " सामान्य तरीके से खुल जाएगा।

सामान्य जावा स्थान उदाहरण: " C: \ Program Files (x86) \ Java \ jdk1.8.0_111 \ bin "।


1

क्लिक / डबल-क्लिक के साथ जार फ़ाइलों को चलाने का एक और तरीका है, फ़ाइल के नाम के लिए "-jar" को प्रीपेंड करना। उदाहरण के लिए, आप फ़ाइल MyJar.jarका नाम बदल देंगे-jar MyJar.jar

आपके पास निश्चित रूप से .classसंबंधित फाइलें होनी चाहिए java.exe। यह सभी मामलों में काम नहीं कर सकता है, लेकिन यह मेरे लिए सबसे अधिक बार काम किया है।


1

विधि : यदि आपका प्रॉम्प्ट दिखाई देता है और तुरंत गायब हो जाता है, तो इसका कारण यह है कि आपका प्रोग्राम निष्पादित हो जाता है और ऑटो बंद हो जाता है। समाप्त करने के लिए अंत में एक स्कैनर लगाने का प्रयास करें और यह समाप्ति से पहले इनपुट के लिए आपके शीघ्र इंतजार को बनाए रखेगा। (या शायद देरी का उपयोग करें)

बहुत ही स्थिति में था, जहां चल रहा था। cmd से .jar ठीक काम कर रहा था, लेकिन डबल क्लिक करने से कुछ नहीं हुआ।

समाधान: किसी भी टेक्स्ट एडिटर को खोलें और कमांड लाइन लिखें: java -jar Example.jar फ़ाइल को .bat फ़ाइल के रूप में सहेजें। आवश्यक आउटपुट प्राप्त करने के लिए इस बैट फ़ाइल को चलाएं।

इसे एक कदम आगे बढ़ाते हुए, आप बैट टू एक्सई कनवर्टर जैसे सरल जीयूआई टूल का उपयोग करके इस बैट फाइल को एक्सई फाइल में बदल सकते हैं।

अब आप अपने .jar को .exe फ़ाइल में एक वितरण के रूप में साझा कर सकते हैं, जिसे कोई भी उपयोग कर सकता है बस यह सुनिश्चित कर सकता है कि आप सभी फ़ाइलों को एक साथ रखते हैं। (विशेष रूप से .jar और .bat फ़ाइल कारण .bat केवल एक cmd प्रॉम्प्ट है) (यह कैसे तार्किक लगता है)

मैं विकास के लिए काफी नया हूं और बहुत कुछ सीख रहा हूं। कृपया किसी भी गलती के लिए क्षमा करें। सुझावों का स्वागत है।


1

.batफ़ाइल का उपयोग करें :

अपने कमांड को .bat फ़ाइल में रखें। यहाँ, आपकी आज्ञा होगी java -jar path\yourJarName.jarSomething like: java -jar C:\workspace\myApplication.jar

इसे सहेजें और अपने जार को चलाने के लिए बैट फाइल पर डबल क्लिक करें। आपका फ़ाइल नाम कुछ इस तरह होगाfileName.bat


0

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


हालांकि, इस सवाल के
डबलडाउन

0

एक शुरुआत करना।बात ही एकमात्र ऐसी चीज थी जो मेरे लिए काम करती थी।

एक पाठ दस्तावेज़ खोलें और दर्ज करें। जावा जार जो कुछ भी तुम्हारा कहा जाता है .jar

जैसा कि आप निष्पादित करना चाहते हैं .jar फ़ाइल के रूप में एक ही फ़ोल्डर में start.bat के रूप में सहेजें। और फिर चलाएं। बल्ला


0

आप उस पर डबल क्लिक करके जार फ़ाइल को चलाने की जरूरत है, तो आप एक "के रूप में यह बनाने के लिए Runnable JAR "। आप इसे केवल अपनी आईडीई के साथ कर सकते हैं।

यदि आप ग्रहण का उपयोग कर रहे हैं, तो इन चरणों का पालन करें:

    To create a new runnable JAR file in the workbench:

1.From the menu bar's File menu, select Export.
2.Expand the Java node and select Runnable JAR file. Click Next.
3.In the  Opens the Runnable JAR export wizard Runnable JAR File Specification page, select a 'Java Application' launch configuration to use to create a runnable JAR.
4.In the Export destination field, either type or click Browse to select a location for the JAR file.
5.Select an appropriate library handling strategy.
Optionally, you can also create an ANT script to quickly regenerate a previously created runnable JAR file.

अधिक जानकारी ग्रहण सहायता पृष्ठ पर पाई जा सकती है: लिंक


0

कई विधियाँ हैंविंडोज़ पर .jar फ़ाइल चलाने के लिए हैं। उनमें से एक कमांड प्रॉम्प्ट का उपयोग कर रहा है।

कदम :

  1. ओपन कमांड प्रॉम्प्ट (व्यवस्थापक के रूप में चलाएँ)
  2. अब रूट डायरेक्टरी के लिए "cd \" कमांड लिखें
  3. टाइप करें "java jar filename.jar" नोट: आप किसी भी तीसरे पक्ष के ऐप का उपयोग कर सकते हैं जैसे WinRAR, jarfix इत्यादि।


0

.batफ़ाइल बनाएँ :

start javaw -jar %*

और इसके .jarसाथ खोलने के लिए ऐप डिफॉल्ट चुनें.bat फाइल के ।

cmdजब आपकी .jarफ़ाइल शुरू होगी तो यह बंद हो जाएगा ।


0

संकलन के लिए:

javac  -cp ".;./mysql-connector-java-5.0.8.jar;mybatis-3.0.1.jar;ibatis-2.3.0.677.jar" MainStart.java

दौड़ने के लिए:

java  -cp ".;./mysql-connector-java-5.0.8.jar;mybatis-3.0.1.jar;ibatis-2.3.0.677.jar" MainStart

0

वास्तव में, मुझे इस समस्या का भी सामना करना पड़ा, मैंने अपने जार फ़ाइल के लिए एक .bat रनर बनाकर इसके साथ इधर-उधर हो गया, यह

कोड है:

class FileHandler{
   public static File create_CMD_Rnner(){
      int exitCode = -1625348952;
      try{
           File runner = new File(Main.batName);
           PrintWriter printer = new PrintWriter(runner);
           printer.println("@echo off");
           printer.println("title " + Main.applicationTitle);
           printer.println("java -jar " + Main.jarName + " " + Main.startCode );
           printer.println("PAUSE");
           printer.flush();
           printer.close();
           return runner;
       }catch(Exception e){
           System.err.println("Coudln't create a runner bat \n exit code: " + exitCode);
           System.exit(exitCode);
           return null;
       }
   }
}



फिर अपने मुख्य आवेदन वर्ग में यह करें:

public class Main{
    static String jarName = "application.jar";
    static String applicationTitle = "java Application";
    static String startCode = "javaIsTheBest";
    static String batName = "_.bat";


    public static void main(String args[]) throws Exception{
        if(args.length == 0 || !args[0].equals(startCode)) {
            Desktop.getDesktop().open(FilesHandler.create_CMD_Rnner());
            System.exit(0);
        }else{
            //just in case you wanted to hide the bat
            deleteRunner();
            // Congratulations now you are running in a cmd window ... do whatever you want
            //......
            System.out.println("i Am Running in CMD");
            //......
            Thread.sleep(84600);
        }
    }


    public static void deleteRunner(){
        File batRunner = new File(batName);
        if(batRunner.exists()) batRunner.delete();
    }
}


कृपया ध्यान दें कि

  1. यह कोड (मेरा कोड) केवल जार फ़ाइल के साथ काम करता है, न कि क्लास फ़ाइल के साथ।

  2. जार फ़ाइल का एक ही नाम होना चाहिए क्योंकि स्ट्रिंग "jarName" मुख्य वर्ग है

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