2016-06-24 5 views
5

मेरे पास एक ओएस एक्स उद्देश्य-सी ऐप है जो जावा प्रोग्राम चलाने के लिए जावा कमांड को प्रोग्रामेटिक रूप से आमंत्रित करता है।ऐप बंडल में JVM की प्रति शामिल करें

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

मैं रनटाइम (rt.jar) के साथ जावा निष्पादन योग्य की एक प्रति कैसे भेज सकता हूं। बेशक मैं ऐप बंडल में rt.jar कॉपी कर सकता हूं लेकिन जावा बाइनरी के बारे में क्या? क्या मैं इसे भी कॉपी कर सकता हूं?

उत्तर

0

आप अपने ऐप के साथ जेआरई भेज सकते हैं (licensing देखें)। उपयोगकर्ता को जेआरई की प्रतिलिपि देने के लिए, एक को डालें और उन्हें स्वयं स्थापित करें या make a application bundle

+0

प्रतिक्रिया के लिए धन्यवाद। ध्यान दें कि मुख्य ऐप एक उद्देश्य-सी ऐप है, यह किसी बिंदु पर जावा कमांड चलाता है। एप्लिकेशन बंडल शुद्ध जावा ऐप्स हैं, इसलिए यह नहीं है कि मैं इसके लिए उपयोग कर सकता हूं। तो शायद 'rt.jar' और जावा बाइनरी कॉपी करें (उदा।/Usr/bin/java)। क्या मैं बस बाइनरी कॉपी कर सकता हूं और क्या यह सभी ओएसएक्स संस्करणों पर काम करेगा? – edwardmp

1

मुझे लगता है कि आपके मामले में, सबसे अच्छा विकल्प जावा इंस्टालर कर्नेल (छोटे इंस्टॉलेशन जो जावा के नवीनतम संस्करण को डाउनलोड और स्थापित करता है) को शामिल करना होगा।

आपके ऐप में बाइनरी प्रति-से बंडल करने वाली मुख्य समस्या मूल रूप से, सुरक्षा है। जेआरई में नियमित रूप से कमजोरियों की खोज की जाती है और पैच किया जाता है। यदि आप अपनी रिलीज के बाद एक विशिष्ट संस्करण को बंडल करते हैं और भेद्यता की खोज की जाती है, तो आप मूल रूप से उन मशीनों की सुरक्षा को कमजोर कर देंगे जहां आपका एप्लिकेशन इंस्टॉल है। जैसा कि आप स्पष्ट रूप से ऐसा नहीं करना चाहते हैं, यह पता लगाने के लिए तर्कसंगत संस्करण मौजूद है या नहीं, अन्यथा ठीक से सही संस्करण स्थापित करने के लिए तर्क शामिल करना बेहतर है। कई इंस्टॉलर पैकेजों में इस तरह के विकल्प शामिल हैं: उदाहरण के लिए, ओपनऑफिस/लिबर ऑफिस मूल ऐप्स हैं लेकिन उन्हें जावा होने की आवश्यकता होती है, और वे ऊपर वर्णित एक जैसी स्थापना विधि का उपयोग करते हैं।

आवेदन कोड, जार फ़ाइलों का एक सेट में पैक, के साथ साथ किसी अन्य अनुप्रयोग संसाधनों (डेटा फ़ाइलें, देशी पुस्तकालयों) JRE का

कॉपी:

+0

वैसे, आप Java (http://java.com/en/download/installed8.jsp) के लिए नवीनतम संस्करण संख्या प्राप्त करने के लिए कुछ सरल तर्क जोड़ सकते हैं, और फिर उस संस्करण को डाउनलोड/इंस्टॉल कर सकते हैं। –

+1

इसके अलावा, यदि पैसा कोई ऑब्जेक्ट नहीं है, तो आप इसका उपयोग कर अपने जावा ऐप को जेआरई-कम निष्पादन योग्य बना सकते हैं: https://www.excelsiorjet.com। –

1

प्रत्येक आत्म निहित आवेदन पैकेज निम्न आइटम शामिल हैं , इस तरह के प्रतीक

के रूप में, इस आवेदन केवल

आवेदन के लिए मूल निवासी लांचर, एक भी पैकेज के लिए कई लांचरों का समर्थन कर रहे

मेटाडाटा द्वारा प्रयोग की जाने

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

-

स्व निहित आवेदन संकुल है निम्नलिखित कमियां:

"डाउनलोड और रन" उपयोगकर्ता अनुभव

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

बड़ा डाउनलोड आकार

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

पैकेज

स्व निहित आवेदन संकुल प्लेटफ़ॉर्म-विशिष्ट होते हैं और केवल एक ही सिस्टम है जिस पर आप का निर्माण के लिए उत्पादन किया जा सकता है। विंडोज, लिनक्स और ओएस एक्स पर स्वयं निहित एप्लिकेशन पैकेज वितरित करने के लिए, आपको अपने तीनों प्लेटफार्मों पर अपनी परियोजना का निर्माण करना होगा।

आवेदन अद्यतन

वेब तैनात Java अनुप्रयोगों स्वचालित रूप से जैसे ही वे उपलब्ध हैं वेब से आवेदन अपडेट डाउनलोड डेवलपर की जिम्मेदारी है। जावा ऑटोपॉडेट तंत्र जेआरई को नवीनतम सुरक्षित संस्करण में हर साल कई बार अपडेट करने का ख्याल रखता है। स्व-निहित अनुप्रयोगों में स्वचालित अपडेट के लिए अंतर्निहित समर्थन नहीं है।

संबंधित मुद्दे