मैं .jar फ़ाइल को निष्पादन योग्य कैसे बना सकता हूँ?


11

मैं Ubuntu के तहत एक जार एप्लिकेशन को चलाने की कोशिश कर रहा हूं, इसलिए मैंने OpenJDK Java 7 रनटाइम को इंस्टॉल किया, लेकिन जब मैं इस एप्लिकेशन को खोलता हूं तो मुझे यह संदेश मिला:

फ़ाइल '/home/aimad/Programms/jMerise/JMerise.jar' निष्पादन योग्य के रूप में चिह्नित नहीं है। यदि इसे किसी अविश्वसनीय स्रोत से डाउनलोड या कॉपी किया गया था, तो इसे चलाना खतरनाक हो सकता है। अधिक विवरण के लिए, निष्पादन योग्य बिट के बारे में पढ़ें।

जवाबों:


17

आप हमेशा एक जार फ़ाइल चलाकर कर सकते हैं java -jar JMerise.jar

हालाँकि, जार फ़ाइल को निष्पादन योग्य बनाने के लिए, आपको निष्पादन योग्य को सेट करने की आवश्यकता है, जैसा कि संदेश संकेत करता है। chmod +x /home/aimad/Programms/jMerise/JMerise.jarइसे पूरा करेंगे।

उसके बाद आप ./JMerise.jarइसे चलाने के लिए कर सकते हैं ।

man chmod chmod कैसे काम करता है, इसके बारे में आपको जानकारी प्रदान करेगा।

इसे भी देखें: https://wiki.ubuntu.com/Security/ExecutableBit


7

फ़ाइल पर राइट क्लिक करें, गुणों पर क्लिक करें, फिर अनुमतियाँ टैब पर जाएं, और उस बॉक्स को चेक करें जो कहता है "इस फ़ाइल को प्रोग्राम के रूप में निष्पादित करने की अनुमति दें"।

यहाँ छवि विवरण दर्ज करें


अगर मैं उस बॉक्स को "प्रोग्राम के रूप में फ़ाइल को निष्पादित करने की अनुमति देने" की जांच नहीं कर सकता हूं तो क्या होगा? मैं इसकी जांच करता हूं, लेकिन एक पल बाद यह स्वतः अनियंत्रित हो जाता है!
user961627

@ user961627 आपके पास शायद .jar फ़ाइल एक विभाजन पर संग्रहीत है जो निष्पादन योग्य बिट का समर्थन नहीं करता है। देखें Can एक फ़ाइल निष्पादन योग्य नहीं बनाना अधिक जानकारी के लिए।
wjandrea

4

पहले आपको यह सुनिश्चित करने की आवश्यकता होगी कि आपके पास अपने सिस्टम पर उपयुक्त जावा रनटाइम वातावरण है। उबंटू ने ओरिजिनल रेपो में Openjdk जो 99.99% ओरेकल जावा के साथ जुडा है, इसे टाइप करने के लिए:

sudo apt-get install openjdk-7-jre

अगला एक फ़ाइल बनाएं जिसका नाम java-jar-launcher.desktopमें ~/.local/share/applicationsऔर उस में निम्नलिखित सामग्री डाल:

[Desktop Entry]
Type=Application
Name=Java Application Launcher
Icon=java
Exec=/usr/bin/java -jar %U
Categories=Application;Java
Terminal=False

अगली पंक्ति में निम्नलिखित जोड़ें ~/.local/share/applications/mimeapps.list:

application/x-java-archive=java-jar-launcher.desktop;

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

यह विधि प्रीफ़रेबल (IMHO) है क्योंकि इस तरह से आप जार फ़ाइलों को निष्पादन की अनुमति नहीं दे रहे हैं जो संभावित रूप से खतरनाक हो सकती हैं। यह विधि केवल एक ग्राफिकल वातावरण में काम करेगी और उपयोगकर्ता को फ़ाइल पर मैन्युअल रूप से डबल क्लिक करने की आवश्यकता होगी।


2

जब से आप अपने जार एप्लिकेशन को चलाते हैं java -jar application.jarतो इसका मतलब है कि जावा आपके रास्ते पर है। आपको दो सरल चीजों की आवश्यकता है: 1) #!java -jarअपनी जार फ़ाइल जट की पहली पंक्ति में एक दुभाषिया (जो कि जाहिरा तौर पर है) जोड़ें जैसे आप अपनी शेल स्क्रिप्ट के साथ करते हैं: echo '#!java -jar' > app.jar cat application.jar >> app.jar mv app.jar application.jar

यदि आप अपनी जार फ़ाइल की सामग्री को देखते हैं, तो आप इसे पूर्व से शुरू करते हैं। #!java -jar PK ^lN BOOT-INF/PK ..... ..... 2) chmod +x application.jar अब तक निष्पादित विशेषता जोड़ें, जिससे आप इसके माध्यम से "स्वयं-चलाने" में सक्षम हैं ./application.jar


0

यदि कमांड लाइन से एक .jar फ़ाइल चल रही है java -jar myFile.jar, तो काम करता है ( ), लेकिन GUI में इसे डबल-क्लिक sudo chmod +x myFile.jarकरना सफल नहीं होता है और यदि आप सफल होते हैं, लेकिन आप अभी भी डबल-क्लिक से नहीं खोल सकते हैं, और यदि .jar पर राइट-क्लिक करें। फ़ाइल> गुण> अनुमतियाँ> "प्रोग्राम के रूप में फ़ाइल को निष्पादित करने की अनुमति दें" काम नहीं करता है (यानी, आपके द्वारा क्लिक करने के बाद चेकबॉक्स वापस स्विच हो जाता है), तो शायद .jar फ़ाइल NTFS फ़ाइल सिस्टम पर होती है, जो निष्पादन की अनुमति नहीं देती है। प्रति-फ़ाइल आधार। (उदाहरण के लिए, यदि आप डुअल-बूट करते हैं, तो आपके पास यह समस्या हो सकती है और उबंटू और विंडोज के बीच एक साझा NTFS विभाजन है)।

लॉन्चर बनाना (जैसा कि @ tusharkant15 बताता है) काम करेगा क्योंकि पर्दे के पीछे आप निष्पादित कर रहे हैं /usr/bin/java, न कि .jar फ़ाइल। .Jar फ़ाइल को कुछ अन्य फ़ाइल सिस्टम में स्थानांतरित करना जो NTFS नहीं है, भी काम करेगा।

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