प्लैटिपस का उपयोग करके एक कार्यशील .app निष्पादन योग्य बनाने में असमर्थ


2

मैं ओएस एक्स के लिए नया हूं और मैं एक शेल स्क्रिप्ट के लिए एक एप्लिकेशन आवरण बनाने की कोशिश कर रहा हूं जो एक मीडिया सर्वर (Red5) शुरू करता है

मैं प्लैटिपस का उपयोग red5.shकरते हुए Red5 सर्वर स्टार्टर स्क्रिप्ट ( ) को एक .appनिष्पादन योग्य में लपेटने की कोशिश कर रहा हूं ।

प्लेटिपस प्रलेखन का कहना है कि

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

जब टर्मिनल से सामान्य रूप से निष्पादित किया जाता है (उपयोग कर रहा है ./red5.sh) सर्वर ठीक शुरू होता है, लेकिन जब मैं .appफाइल बनाता हूं (प्लैटिपस के "फाइल बंडल किए जाने के लिए" में स्क्रिप्ट के सीडब्ल्यूडी को सेट करने के बाद, परिणामस्वरूप .appफ़ाइल डबल होने पर नहीं चलती है पर क्लिक किया।

यह निम्नलिखित त्रुटि देता है

Error: Could not find or load main class

मुझे यकीन नहीं है कि मैं क्या गलत कर रहा हूं, लेकिन मुझे लगता है कि यह सही निर्देशिका को बांधने के साथ कुछ करना है।

जवाबों:


1

मुझे जावा-आधारित वेब एप्लिकेशन सर्वर को चलाने के लिए इसी तरह की समस्या थी। मेरे लिए, समस्या यह थी कि मेरा पर्यावरण चर (विशेष रूप से JAVA_HOME) सेट नहीं किया जा रहा था, जिसका कारण यह है कि बैश का उदाहरण (या आपके पास इसका उपयोग करने वाला शेल) लॉगिन शेल या ए के रूप में शुरू नहीं होता है इंटरैक्टिव खोल, इसलिए आपका प्रोफ़ाइल स्क्रिप्ट (जैसे ~/.profile, ~/.bashrcआदि) स्वचालित रूप से नहीं चलता है।

मेरे लिए, समाधान मेरी स्क्रिप्ट में निम्न जोड़ना था:

source ~/.profile

sourceआदेश आदेशों में का कारण बनता है ~/.profileवर्तमान खोल में निष्पादित किया जाना है; इस तरह उस स्क्रिप्ट द्वारा सेट किया जा रहा पर्यावरण वैरिएबल बैश के उदाहरण के लिए उपलब्ध होगा जो प्लैटिपस शुरू होता है।

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

एक विकल्प के रूप में, आप बस आवश्यक स्क्रिप्ट चर को सीधे अपनी स्क्रिप्ट में सेट कर सकते हैं।

उम्मीद है की यह मदद करेगा!

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