लिनक्सवर जार फाइल कशी उघडायची. पाठ्यपुस्तकानुसार Java वर्ग आणि JAR चालवणे

संगणकावर व्हायबर 18.04.2019

20 उत्तरे

सर्वात सोपा मार्ग कदाचित एक अद्यतन आहे किंवा पुनर्स्थापना जावा रनटाइमपर्यावरण (JRE).

जर तुम्हाला तुमची .jar फाईल वितरीत करायची असेल आणि ती इतर Windows संगणकांवर उपलब्ध करून द्यावी लागेल, तर तुम्ही कमांड लाइनवर अशी एक साधी .bat फाइल बनवू शकता:

Java -jar MyJavaTool.jar

आणि .bat फाइल तुमच्या .jar फाइलच्या डिरेक्टरीमध्ये ठेवा.

याचा एक मनोरंजक दुष्परिणाम म्हणजे कमांड लाइनवर एक्झिक्युटेबल जार फाइल्स चालवताना समस्या उद्भवते.

आपण प्रयत्न केल्यास (कमांड लाइनवर)

jarfile.jar पॅरामीटर

आनंद नाही, कारण हे खालीलमध्ये भाषांतरित होते (ते कार्य करत नाही):

javaw.exe -jar jarfile.jar पॅरामीटर

तथापि ते कार्य करते पुढील आदेश:

java.exe -jar jarfile.jar पॅरामीटर

वर वर्णन केल्याप्रमाणे तुम्ही फाईल मॅनेजरमधील लिंक बदलल्यास, चालवा खालील क्रिया:

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

आपण प्रविष्ट करू शकता:

jarfile.jar पॅरामीटर

कमांड लाइनवर आणि आता ते कार्य करेल! संपादित करा: (तथापि, तुम्हाला मिळेल काळी खिडकीफॉर्म-आधारित Java ऍप्लिकेशन चालवताना कन्सोल (कन्सोल-आधारित नाही, म्हणून ते एक आदर्श उपाय नाही)

जर तुम्ही या जार फाइल्स विंडोमध्ये डबल-क्लिक करून चालवल्या तर, पॅरामीटर्स पास होणार नाहीत, त्यामुळे तुमच्या Java कोडने अपवाद हाताळला पाहिजे आणि शेवटी "की प्रेस" फंक्शन समाविष्ट केले पाहिजे अन्यथा विंडो सहज अदृश्य होईल.

विंडोजवर पॅरामीटर पास करण्यासाठी तुम्हाला जार फाईलचा शॉर्टकट तयार करणे आवश्यक आहे ज्यामध्ये टार्गेट लाइनवरील पॅरामीटर समाविष्ट आहे (क्लिक करा राईट क्लिकशॉर्टकटवर माऊस करा आणि गुणधर्म निवडा), तुम्ही अशा प्रकारे जार फाइल आयकॉनमध्ये पर्याय जोडू शकत नाही.

येथे कोणतेही एकल, सातत्यपूर्ण समाधान नाही, परंतु तुम्हाला इतर कोणत्याही कन्सोल अनुप्रयोगासह समान समस्या असेल.

एक मोफत आहे विंडोज अनुप्रयोग"bat to exe" असे म्हणतात जे तुम्ही तयार करण्यासाठी वापरू शकता exe फाइल.bat फाइलमधील संबंधित कमांड लाइनसह. तुम्ही या ऍप्लिकेशनच्या सहाय्याने exe मध्ये jar फाईल देखील घालू शकता आणि ती चालणे पूर्ण झाल्यावर ती साफ करू शकता, त्यामुळे हा एक अधिक मोहक उपाय असू शकतो.

Windows XP* वर तुम्हाला फक्त दोन शेल कमांडची आवश्यकता आहे:

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 सह चाचणी केलेली नाही

अशी एक पद्धत आहे जी वापरकर्त्याला त्यांच्या PC मध्ये बदल करण्याची आवश्यकता नाही. Runtime.getRuntime.exec() आम्हाला cmd.exe लाँच करण्यास आणि त्यामध्ये कमांड कार्यान्वित करण्यास अनुमती देते. त्यामुळे ते शक्य आहे java प्रोग्रामजेव्हा वापरकर्ता .jar फाइलवर क्लिक करतो तेव्हा कमांड लाइनवर चालते.

सार्वजनिक स्थिर शून्य मुख्य(स्ट्रिंग आर्ग्स) IOException ( if(args.length == 0) फेकते ( प्रक्रिया p ​​= Runtime.getRuntime().exec("cmd.exe /c प्रारंभ java-जार" + (नवीन फाईल(NameOfClass.class.getProtectionDomain().getCodeSource().getLocation().getPath())).getAbsolutePath() + "cmd"); ) इतर (//कोड कार्यान्वित होणार आहे) )

इतर सर्व सूचनांव्यतिरिक्त, आणखी एक गोष्ट आहे ज्याचा आपण विचार करणे आवश्यक आहे. तुमचा कन्सोल प्रोग्राम helloworld.jar आहे का? जर असे असेल तर, मला विश्वास नाही की तुम्ही त्यात बदलू शकता दुहेरी फाइलजर. कन्सोल कार्यक्रमत्यांच्या इनपुट आणि आउटपुटसाठी नियमित cmd.exe शेल विंडो वापरा. सामान्यत: "लाँचर" जार javaw.exe ला बांधलेले असते, जे कमांड शेल विंडो तयार करत नाही.

तुम्हाला काही गोष्टी तपासायच्या आहेत; जर ते तुमचे असेल स्वतःची फाइल jar, तुम्ही मॅनिफेस्टमध्ये मुख्य वर्ग परिभाषित केल्याची खात्री करा. आम्हाला माहीत असल्याने तुम्ही ते चालवू शकता कमांड लाइन, तुम्हाला तयार करण्यासाठी हे करणे आवश्यक आहे विंडोज शॉर्टकटआणि गुणधर्म बदला (तुम्हाला आजूबाजूला पहावे लागेल, माझ्याकडे नाही विंडोज मशीन्सतुम्ही पहात आहात) त्यामुळे उघडल्यावर चालणारी कमांड ही तुम्ही नमूद केलेली java-jar कमांड आहे.

दुसरी गोष्ट: जर काहीतरी तुम्हाला त्रास देत नसेल, तर ते कसेही कार्य केले पाहिजे; तपासा आणि तुमच्याकडे .jar एक्स्टेंशनशी संबंधित जावा असल्याची खात्री करा.

मला हीच समस्या Windows 10 वर आली होती. मी ती दुरुस्त केली राईट क्लिकवर helloworld.jar"आणि जा गुणधर्मआणि बटण दाबा बदल"यासह उघडते:" अंतर्गत आणि "निवडा" या PC वर दुसरा अनुप्रयोग शोधा".संवाद बॉक्समध्ये" च्या ने उघडा..."तुमच्या पीसीवरील जावा फोल्डर फोल्डरमध्ये जा आणि संबंधित jdk फोल्डर उघडा आणि नंतर फोल्डर उघडा. डबाआणि निवडा" javaw.exe"तेथून. मग पुढच्या वेळी तुमची" helloworld.jar"सामान्य पद्धतीने उघडेल.

उदाहरण Java वापरून: "C:\Program Files (x86)\Java\jdk1.8.0_111\bin".

दुसरा मार्ग लाँच जारफाइल नावात "-jar" जोडण्यासाठी क्लिक/डबल-क्लिक वापरणाऱ्या फाइल्स. उदाहरणार्थ, तुम्ही फाइलचे नाव बदलू शकता मायजर.जारव्ही -जार MyJar.jar.

तुमच्याकडे अर्थातच java.exe शी संबंधित .class फाइल्स असणे आवश्यक आहे. हे सर्व प्रकरणांमध्ये कार्य करू शकत नाही, परंतु माझ्यासाठी ते सर्वात जास्त कार्य करते.

जर तुम्हाला जार फाईल त्यावर डबल क्लिक करून चालवायची असेल, तर तुम्ही ती तयार करावी " चालवण्यायोग्य JAR". तुम्ही हे फक्त तुमच्या IDE सह करू शकता.

तुम्ही ग्रहण वापरत असल्यास, या चरणांचे अनुसरण करा:

वर्कबेंचमध्ये नवीन रन करण्यायोग्य JAR फाइल तयार करण्यासाठी: 1. मेनू बार फाइल मेनूमधून, निर्यात निवडा. 2.जावा नोडचा विस्तार करा आणि निवडारन करण्यायोग्य JAR फाइल. पुढील क्लिक करा. 3. रन करण्यायोग्य JAR निर्यात विझार्ड उघडते रन करण्यायोग्य JAR फाइल तपशील पृष्ठ, रन करण्यायोग्य JAR तयार करण्यासाठी वापरण्यासाठी "जावा ऍप्लिकेशन" लॉन्च कॉन्फिगरेशन निवडा. 4. निर्यात गंतव्य फील्डमध्ये, JAR फाइलसाठी स्थान निवडण्यासाठी एकतर टाइप करा किंवा ब्राउझ क्लिक करा. 5. योग्य लायब्ररी हाताळणी धोरण निवडा. वैकल्पिकरित्या, तुम्ही पूर्वी तयार केलेली रन करण्यायोग्य JAR फाइल द्रुतपणे पुन्हा निर्माण करण्यासाठी ANT स्क्रिप्ट देखील तयार करू शकता.

अधिक माहिती ग्रहण मदत पृष्ठावर आढळू शकते:

लिनक्सवर सहाय्यक साधनांशिवाय जावा प्रोग्राम कसे चालवायचे या कल्पनेत मला फार पूर्वीपासून रस आहे. बॅश स्क्रिप्ट्स. मी पाहिले नाही स्वीकार्य उपाय, "बॅश स्क्रिप्ट पेलोड" पद्धत वगळता, जेव्हा स्क्रिप्टच्या शेवटी बायनरी फाइल ठेवली जाते.

पण गेल्या आठवड्यात मला चुकून binfmt_misc कर्नल मॉड्यूल आढळून आले, ज्याच्या मदतीने तुम्ही फाईलच्या मॅजिक नंबरद्वारे कार्यान्वित करू शकता. हे करण्यासाठी, एक्झिक्युटेबल फाइलचे नाव आणि वापरकर्ता वितर्क प्राप्त करण्यासाठी update-binfmts द्वारे कस्टम हँडलर जोडला जातो.

पहिला शोध

असे झाले की, JAR फाइल्ससाठी हँडलर माझ्या उबंटू 16.04 मध्ये आधीपासूनच नोंदणीकृत आहे:

Update-binfmts --display... jar (सक्षम): पॅकेज = openjdk-8 प्रकार = मॅजिक ऑफसेट = 0 मॅजिक = PK\x03\x04 मास्क = इंटरप्रिटर = /usr/bin/jexec डिटेक्टर =
आज्ञा दिल्याने chmod +x foo.barमी आनंदाने माझे हात चोळले, परंतु वास्तविकता कठोर असल्याचे दिसून आले - प्रक्षेपण ./foo.jarखालील दिले:

अवैध फाइल (खराब मॅजिक नंबर): Exec फॉरमॅट एरर
गुगलिंग केल्यावर, मला मॉस bugs.java.com/bugdatabase/view_bug.do?bug_id=6401361 सह वाढलेला बग आढळला, जसे की हे दिसून आले की, Maven द्वारे बिल्ड JAR फाइलच्या सुरूवातीस "0xcafe" जोडत नाही. मावेन-असेंबली-प्लगइन कमी बेजबाबदारपणे वागत नाही. डीफॉल्ट नोंदणीकृत हँडलर /usr/bin/jexec मध्ये काय चूक आहे.

आणखी काही गुगलिंग केल्यानंतर, मला jarwrapper पॅकेज स्थापित करून समस्येवर उपाय सापडला. स्थापनेनंतर, नवीन हँडलर /usr/bin/jarwrapper आणि विमा /usr/bin/jardetector जोडले जातात (हे खरोखर JAR आहे हे META-INF वापरून तपासा). परंतु हँडलर कोडचा अभ्यास केल्यानंतर, मला बरेच काही आवडले नाही अतिरिक्त काम, जे स्क्रिप्ट अनेक सहाय्यक कार्यक्रम लाँच करून करते.

म्हणून, आमचे स्वतःचे हँडलर तयार करणे हा उपाय होता:

#!/bin/sh #/usr/bin/jarinvoke JAR=$1 शिफ्ट exec java -jar $JAR $@
पुढे, फाइल उघडा sudo gedit /var/lib/binfmts/jarआणि /usr/bin/jexec वरून /usr/bin/jarinvoke वर ओळ ​​बदलून हँडलरची नोंदणी करा. प्रत्यक्षात ते आहे वाईट निर्णयआणि ते तयार करणे चांगले आहे स्वतःचा गट(यावर खाली अधिक), परंतु प्रारंभिक समजून घेण्यासाठी ते करेल.

बदल प्रभावी होण्यासाठी, तुम्हाला याची आवश्यकता असू शकते:

Sudo update-binfmts -- disable jar && sudo update-binfmts -- जार सक्षम करा
मग तुम्ही इतर कोणत्याही प्रमाणे JAR फाइल्स चालवू शकता एक्झिक्युटेबल फाइल्स.

एक्झिक्युटेबल वर्ग

आता तुम्ही पुढे जाऊन बनवू शकता जावा वर्गएक्झिक्युटेबल फाइल्स जिथे jarwrapper मदत करू शकत नाही. हँडलर केवळ डीफॉल्ट पॅकेज असलेल्या वर्गांसाठीच काम करेल (म्हणजे गहाळ पॅकेज शीर्षलेख असलेले वर्ग). कदाचित आपण अधिक चांगले करू शकता, परंतु ही कार्यक्षमता माझ्यासाठी Java मध्ये "स्क्रिप्ट" करण्यासाठी पुरेशी होती:

#!/bin/sh # /usr/bin/clsinvoke CLASS_FILE=$1 शिफ्ट ABSOLUTE_PATH=`readlink -f $CLASS_FILE` CLASS=`basename $ABSOLUTE_PATH` CLASS=$(CLASS%.*) CLASSPATH=`dirname $ABSOLUTE_PATH java -cp $CLASSPATH $CLASS $@
मग आम्ही आमच्या स्वतःच्या हँडलरची नोंदणी करतो (तुम्ही /usr/bin/jexec संपादित न करता JAR साठी नवीन हँडलर तयार करण्यासाठी समान पद्धत वापरू शकता):

Sudo update-binfmts --package clsinvoke -- install clsinvoke /usr/bin/clsinvoke --magic "\xca\xfe\xba\xbe"
चाचणी:

सार्वजनिक वर्ग HelloWorld ( सार्वजनिक स्थिर शून्य मुख्य (स्ट्रिंग आर्ग्स) ( System.out.println("हॅलो, वर्ल्ड"); ))
javac HellWorld.java chmod +x HelloWorld.class ./HelloWorld.class हॅलो, वर्ल्ड
तुम्ही अधिक क्लिष्ट हँडलर बनवून पुढे जाऊ शकता जे वर्ग आयात करून ~/.m2 पासून CLASSPATH मध्ये कोणती लायब्ररी जोडायची हे ठरवेल, परंतु हे दुसरी कथा. आता बाहेरील दृश्य, टिप्पण्या, जोडणे, काही असल्यास पाहणे मनोरंजक आहे. त्यानंतर मी ते डेब पॅकेजमध्ये टाकण्याचा आणि गिथबवर सर्व काही पोस्ट करण्याचा विचार करत आहे.

मला .jar फाइल्सवर डबल क्लिक करून समस्या आहे. जेव्हा मी प्रॉपर्टी डायलॉगवर जातो, तेव्हा मला प्रोग्राम्सच्या सूचीमध्ये Java-only Archive Manager सापडत नाही. पण -jar somefile.jar प्रोग्राम उघडतो.

Related of "डबल क्लिक वापरून .jar फाईल कशी चालवायची?"

तुमच्याकडे कदाचित रनटाइम इंस्टॉल केलेला नसेल!

ते स्थापित करण्यासाठी, खालील सूचना वापरून पहा.

Sudo apt-get install openjdk-7-jre

किंवा तुम्ही खालील आदेशांसह PPA पद्धत वापरून Oracle JRE स्थापित करू शकता.

Sudo add-apt-repository ppa:ferramroberto/java sudo apt-get update sudo apt-get install sun-java6-jre sun-java6-plugin sun-java6-fonts

नंतर, .jar फाइल्स उघडण्यासाठी वापरण्यासाठी, खालील प्रयत्न करा.

  1. .jar फाइल > गुणधर्मावर उजवे-क्लिक करा.
  2. शीर्षस्थानी असलेल्या "सह उघडा" टॅबवर क्लिक करा.
  3. डीफॉल्ट निवड Sun Java 6 रनटाइममध्ये बदला.
  4. बंद करा वर क्लिक करा आणि तुम्ही डबल क्लिक करण्यासाठी तयार असाल.

Java .jar फाइल्स बाय डीफॉल्ट उघडण्यासाठी (म्हणजे डबल क्लिक करा), "" निवडण्यासाठी कोणत्याही .jar फाइलवर उजवे क्लिक करा. गुणधर्म". पुढील विंडोमध्ये, टॅब निवडा "च्या ने उघडा"उदाहरणार्थ खालील निवड पाहण्यासाठी:

वेळ निवडा Java अंमलबजावणीआणि हा ऍप्लिकेशन डीफॉल्टनुसार .jar फाइल्स उघडण्यासाठी डीफॉल्ट म्हणून सेट करा क्लिक करा.

खालील सामग्रीसह /usr/share/applications/java.desktop नावाची फाईल जोडणे ही युक्ती आहे.

Name=Java Comment=Java GenericName=Java Keywords=java Exec=java -jar %f Terminal=false X-MultipleArgs=false Type=Application MimeType=application/x-java-archive StartupNotify=true

ही फाईल जोडल्यानंतर तुम्हाला जावा नावाची एंट्री ओपन फाइलमध्ये...-संवादासह शोधता येईल

अर्जासाठी अर्ज

एकदा Java Runtime Environment इन्स्टॉल झाल्यावर, तुम्ही *.desktop फाइल तयार करून सिस्टीमवर इतर ॲप्लिकेशन्सप्रमाणे लॉन्च आयकॉन तयार करू शकता.
हे गोष्टी सुलभ आणि अधिक सुंदर बनवते!

    *.jar (ॲप्लिकेशन) आणि *.png (ॲप्लिकेशन आयकॉन) फाइल्ससह तुमच्या आवडीच्या निर्देशिकेत फोल्डर तयार करा. या प्रकरणात मी /usr/share/folder निर्देशिका वापरेन. ~/फोल्डरसाठी हे आहे चांगली युक्तीत्यास अनुप्रयोगाच्या नावासह नाव द्या, उदाहरणार्थ VUE अनुप्रयोगाने फोल्डरला ~/VUE किंवा ~/vue नाव दिले असल्यास.

    टर्मिनल उघडा आणि कोडची खालील ओळ चालवा:

    Sudo mkdir /usr/share/folder

    किंवा टर्मिनलमध्ये खालील कोडची ओळ चालवून सुपर प्रशासक विशेषाधिकारांसह फाइल व्यवस्थापक (या प्रकरणात नॉटिलस) उघडा:

    Gksu नॉटिलस

    त्यानंतर, /usr/share वर जा आणि एक GUI फोल्डर तयार करा.

    टर्मिनलमध्ये देखील आणि कोडची खालील ओळ कार्यान्वित करा:

    Gksu gedit /usr/share/applications/*.desktop

    (तुम्ही तुमचा आवडीचा संपादक वापरू शकता. या प्रकरणात, Gedit वापरले होते.)

    पेस्ट करा खालील ओळीसंपादित फाइलमध्ये कोड:

    एन्कोडिंग=UTF-8 नाव=नाव श्रेण्या=श्रेणी नाव Exec=java -jar /usr/share/folder/*.jar Icon=/usr/share/folder/*.png StartupNotify=false Terminal=false Type=Application Comment= अर्जाचे नाव StartupWMClass=क्लास MimeType=application/*

    फाईल सेव्ह करा. (* नेहमी तेच नाव.)

अर्जाची अंमलबजावणी

आयकॉन आकारांसाठी, लिनक्स सपोर्ट करते विविध स्वरूपप्रतिमा (PNG, JPG, SVG, इ.) आणि आकार (16x16 ~ 512x512 px). तुम्ही 32x32 ~ 96x96 पिक्सेलची PNG फाइल वापरू शकता किंवा SVG फाइलप्राप्त करण्यासाठी आकार 128×128 ~ 512×512 पिक्सेल सर्वोत्तम परिणाम. या प्रकरणात मला वाटते की एका छान डेस्कटॉप/डॅशसाठी 96x96 पिक्सेलचा PNG पुरेसा आहे.

मिळविण्यासाठी अतिरिक्त माहितीदिसत:

  • उबंटूला विचारा - काही चिन्हांना इतके वेगवेगळे आकार का असतात?
  • Gnome Developer - चिन्हांचे प्रकार

फाइल असोसिएशन

या चरणासाठी, तुम्हाला MIME प्रकार अस्तित्वात नसल्यास तयार करणे आवश्यक आहे आणि mimeapps.list फाइलमधील अनुप्रयोगाशी ते संबद्ध करणे आवश्यक आहे. हे करण्यासाठी, खालील गोष्टींवर एक नजर टाका:

  • उबंटूला विचारा - मध्ये फाइल असोसिएशनशी मी संवाद कसा साधू शकतो विविध अनुप्रयोग(नॉटिलसमध्ये नाही)?

नोंद. तुम्हाला काही चुकीचे आढळल्यास, मोकळ्या मनाने संपादित करा आणि दुरुस्त करा. ना धन्यवाद!



आम्ही वाचण्याची शिफारस करतो

वर