2012-07-05 12 views
15

पर एक बंडल जेआरई का उपयोग करना कुछ समय के लिए, हमारे जावा एप्लिकेशन को विंडोज़ पर जेआरई के साथ पहले से ही बंडल किया गया है। हमारे पास सी में लिखा गया एक छोटा लॉन्चर ऐप है जो एप्लिकेशन को हमारे पूर्व बंडल जेआरई का उपयोग करता है। अब ऐप्पल के क्रूसेड के साथ धीरे-धीरे जावा को मारने के लिए हमने फैसला किया है कि यह ओएसएक्स पर समान कुछ समझदार होगा। ओएसएक्स पर प्री बंडल जेआरई का उपयोग करने का सबसे अच्छा तरीका क्या होगा?ओएसएक्स

+0

एप्पल मैक ओएस एक्स पर जावा को मारने के लिए नहीं चाहता है, लेकिन एक मानक Oracle JVM का उपयोग करेगा अपने संस्करण के बजाय। – Matteo

+0

क्या आप कह रहे हैं कि मैं ऑरैकल से जेआरई को बंडल कर सकता हूं, और मैक जावा ऐप पर इसका इस्तेमाल कर सकता हूं? – Mike2012

+0

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

उत्तर

6

भले ही मुझे यह एक बुरा विचार मिल जाए (नीचे देखें) आप ओपनजेडीके जैसे जेवीएम को बंडल कर सकते हैं और फिर अपने java निष्पादन योग्य कॉलिंग को एक छोटी स्क्रिप्ट के साथ अपना एप्लिकेशन शुरू कर सकते हैं।

नोटिस: मुझे पता नहीं है, तो एक JVM पुनर्वितरण की अनुमति दी है (कानूनी) है, तो आप समझौते

  • डाउनलोड करने पहली समस्या आप होगा वहाँ सिर्फ है कि इस समय से पहले की जाँच करनी चाहिए एप्पल के संस्करण या ओरेकल जावा 7u6 मैक ओएस एक्स पोर्ट डेवलपर पूर्वावलोकन रिलीज (जो केवल एक पूर्वावलोकन है)। (उदाहरण के लिए, http://jdk7.java.net/macportpreview/)। यह भविष्य में बदल जाएगा जब ऐप्पल अपने संस्करण की आपूर्ति करना बंद कर देगा। तो फिलहाल आप केवल शेर पर चल रहे एक पूर्वावलोकन के साथ फंस गए हैं। लेकिन मैं आपको एक उदाहरण दिखाऊंगा।

  • डाउनलोड संस्थापक, डिस्क छवि माउंट, सही प्लगइन पर क्लिक करें, चुनें "पैकेज सामग्री दिखाएं" Home फ़ोल्डर निकालने, यह JRE

  • फिर आप के साथ जांच कर सकते हैं

    $ ./Home/bin/java 
    java version "1.7.0_06-ea" 
    Java(TM) SE Runtime Environment (build 1.7.0_06-ea-b18) 
    Java HotSpot(TM) 64-Bit Server VM (build 23.2-b08, mixed mode) 
    

    मैं तो जैसे jre

  • कुछ में Home नाम बदलने आप आप बस करना होगा अपने आवेदन के साथ इस फ़ोल्डर पैकेज तो होगा साथ

    #!/bin/sh 
    ./jre/bin/java -classpath myniceapplication.jar 
    
  • एक आवेदन आप (जो applicationname नाम दिया जाना चाहिए) आप स्क्रिप्ट युक्त एक applicationname.app/Contents/MacOS फ़ोल्डर की आवश्यकता होगी निर्माण करने के लिए सक्षम होने के लिए एक छोटे से स्क्रिप्ट शामिल हैं।

  • अब ऐसा लगता है कि आप इन लिपियों

    /Path/applicationname.app/Contents/MacOS/jre/bin/java -classpath myniceapplication.jar 
    

    मुझे लगता है एक मैक ओएस एक्स आवेदन बंडल निर्माण करने के लिए एक बेहतर समाधान है कि वहाँ है, लेकिन मैं एक विशेषज्ञ नहीं हूँ में उपयोग के पूर्ण पथ की जरूरत है। यह उदाहरण सिर्फ यह दिखाने के लिए था कि यह काम कर सकता है।

सारांश:

  • चेक यह JRE पुनर्वितरित (और जाँच जो स्थितियां हैं)

  • मैं यह कर नहीं होगा, क्योंकि आप इसे रखने के लिए करना होगा करने के लिए अनुमति दी है अगर जेआरई सुरक्षा अद्यतन

  • उपयोगकर्ता के रूप में मैं एक यादृच्छिक डेवलपर की तुलना में अधिक ओरेकल पर भरोसा करता हूं (कुछ भी व्यक्ति नहीं) अल :-) एक JRE

+0

ओरेकल से 'jdk-7u5-macosx-x64.dmg' आरोहित होने पर, मुझे यकीन नहीं है कि प्लग-इन को राइट-क्लिक (इंस्टॉल किए बिना) कहां मिलना है, क्योंकि इसमें केवल' जेडीके 7 अपडेट 05.pkg है) 'और जब मैं इसे राइट-क्लिक करता हूं, तो "पैकेज सामग्री दिखाएं" मेनू आइटम नहीं है। – Mot

+0

नहीं, ओपनजेडीके में प्री-बिल्ड कॉपी नहीं है (आपको इसे तब तक बनाना है जब तक मुझे याद है)। मेरे उत्तर में लिंक जावा प्लगइन को इंगित करता है जिसमें जेआरई की एक प्रति शामिल है (http://www.java.net/download/jdk7u6/archive/b19/binaries/JavaAppletPlugin.dmg) – Matteo

+0

आपका लिंक एक पूर्वावलोकन निर्माण के लिए इंगित करता है । मैं जेडीके का जिक्र कर रहा था जिसे कोई [मानक ओरेकल वेबसाइट] (http://www.oracle.com/technetwork/java/javase/downloads/index.html) से डाउनलोड कर सकता है। वर्तमान में अन्य प्लेटफ़ॉर्म के लिए जेआरई ओएसएक्स के लिए उपलब्ध नहीं है। – Mot

2

अपने ऐप्लिकेशन में JRE बांध दिया, और सक्रिय करने के लिए यह ऐप स्टोर करने के लिए प्रस्तुत किया जाना बारे में this blog post में कुछ विस्तृत निर्देश हैं पाने के लिए।

15

मैं @Daniel द्वारा उनके उत्तर में लिंक ब्लॉग पोस्ट का लेखक हूं। मैंने ओपनजेडीके को सफलतापूर्वक बंडल किया और मैक ऐप स्टोर पर जावा ऐप प्रकाशित किया।

सबसे पहले, मुझे स्वीकृत उत्तर में कुछ मुद्दों को सही करने दें।

  • ओपनजेडीके को बंडल करना और इसे फिर से वितरित करना पूरी तरह कानूनी है।
  • ओपनजेडीके केवल शेर पर नहीं चलता है, मैंने इसे पूर्व शेर पर माउंटेन शेर तक इस्तेमाल किया था। हालांकि इसे 32 बिट ओएस पर काम करने के लिए पैच किया जाना चाहिए।
  • ओपनजेडीके बीटा गुणवत्ता में है लेकिन यह एक जटिल स्विंग एप्लिकेशन चलाने के लिए अभी भी स्वीकार्य है। वहाँ पर OSX में कुछ मुद्दे हैं, लेकिन मैं कैसे this post.

में उन्हें ठीक करने के वहाँ, आप AppBundler नामक एक एप्लिकेशन, ओरेकल द्वारा प्रकाशित उपयोग कर सकते हैं @ Matteo के जवाब में वर्णित के रूप में किसी भी स्क्रिप्ट बनाने के लिए आवश्यकता नहीं है, करने के लिए वर्णित देशी निष्पादन योग्य बनाएं जो आपके एप्लिकेशन को लॉन्च करे और मूल बंडल बनाएं। ऐपबंडलर एक Info.plist फ़ाइल भी उत्पन्न करेगा जिसमें आपके एप्लिकेशन को लॉन्च करने के तरीके के बारे में जानकारी होगी, जैसे कि लॉन्च करने के लिए निष्पादन योग्य नाम, जावा तर्क आदि ...

10.7.5 से ऊपर और आपके ऐप को गेटकीपर होना चाहिए संगत और हस्ताक्षरित (इसलिए आपको भुगतान किए गए मैक डेवलपर प्रोग्राम में नामांकन करना होगा) यदि आप एक संवाद नहीं चाहते हैं कि आपका ऐप एक अज्ञात डेवलपर से है, तो जब उपयोगकर्ता इसे पहले खोलता है तो प्रकट होता है।

ऐप स्टोर पर तैनात किए जाने के लिए आपके ऐप को सैंडबॉक्स वाले वातावरण में भी काम करने में सक्षम होना चाहिए, लेकिन यदि आप इसे ऐप स्टोर के बाहर वितरित करते हैं तो यह सख्त आवश्यकता नहीं है।

ध्यान दें कि ऐपबंडलर में कुछ उपयोगी विशेषताएं हैं, आपको this fork में रुचि हो सकती है।

+0

यह उत्तर या @ डैनियल का उत्तर स्वीकार्य उत्तर होना चाहिए। वे ओरेकल से सीधे, पूरी तरह से, और आधिकारिक जानकारी के साथ सवाल का जवाब देते हैं। – Jason

2

यहाँ कैसे एप्पल पर वितरण के लिए एक JRE बंडल करने पर ओरेकल के लिए खुद से एक कदम-दर-कदम गाइड है: http://docs.oracle.com/javase/7/docs/technotes/guides/jweb/packagingAppsForMac.html

+0

यह उत्तर या @ मार्को का उत्तर स्वीकार्य उत्तर होना चाहिए। मैक और मैक ऐप स्टोर के लिए जावा एप्लिकेशन को बंडल करने के तरीके पर ओरेकल से ये चरण सीधे हैं। – Jason