java - JarBundler का उपयोग कर MacOSX के लिए.app फ़ाइल को कन्वर्ट करें




executable-jar (2)

मेरे लिए काम किया! कुछ कारणों से मैं चींटी क्षेत्र में जारबुन्डलर। जार्ज फ़ाइल नहीं डाल सकता था, परन्तु इसे स्पष्ट रूप से build.xml से इंगित करना था (मैं इसे <projectRoot>/jarbundler/jarbundler-2.2.0.jar में डाल दिया था) । मेरा build.xml ऐसा दिखता है:

<?xml version="1.0" encoding="UTF-8"?>
<project name="TripleWhammy" default="default" basedir=".">        
    <taskdef name="jarbundler"
             classname="net.sourceforge.jarbundler.JarBundler"
             classpath="jarbundler/jarbundler-2.2.0.jar" />

    <target name="bundle">
        <jarbundler dir="."
                    name="Triple Whammy"
                    mainclass="org.bigclue.TripleWhammy"
                    jar="target/triple-whammy-1.0-jar-with-dependencies.jar"
                    icon="triple-whammy.icns"/>
    </target>
</project>

यह मेरी प्रोजेक्ट डायरेक्टरी में "ट्रिपल व्हैमी.एप" बनाया गया है मेरा आइकन अच्छा लगता है मिठाई।

अब जब मैंने एक सरल वितरित पासा बनाया है। .app , कुछ भयानक निर्माण करने का समय ...

(मैक ओएस एक्स 10.6.8, जावा 1.6.0_51, चींटी 1.8.4; मेवेन 3.0.4 और इसका "असेंबली" प्लगइन संस्करण 2.4 का उपयोग करके मेरा।

मैं जो कुछ करने की कोशिश कर रहा हूं वह एक साधारण जावा प्रोग्राम को मैकोड .एप फ़ाइल में कनवर्ट कर रहा है इसलिए मैं इसे एक सरल निष्पादन योग्य फ़ाइल के रूप में वितरित कर सकता हूं।

मैंने सभी जगह पढ़ लिया है और हर कोई एक ही चीज़ कहता है:

  1. Xcode का उपयोग करें - जहाँ तक मैं बता सकता हूं, Xcode अब जावा बिल्ड का समर्थन नहीं करता
  2. जार बंडलर का उपयोग करें - सभी ट्यूटोरियल पुरानी लग रहे हैं, और यह काम नहीं करता है। जब मैं चलाता हूं: जावा-जेर जर्बुंडलर- 2.0.0.jar

    कंसोल "जेरबंडलर-2.0.0.jar में कोई मुख्य प्रकट विशेषता नहीं देता"

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

  3. वे कहते हैं कि आप सिर्फ निर्देशिका बना सकते हैं और फाइल अपने आप कर सकते हैं और फिर अपने फ़ोल्डर को .app में बदल सकते हैं और फिर उस पर या कुछ पर एक आदेश चला सकते हैं लेकिन यह जटिल है क्योंकि मुझे पता नहीं है कि जानकारी कैसे जानी चाहिए। यदि आप इसे इस तरह से करना चाहते हैं, तो मैंने जो सबसे अच्छी वेबसाइट देखी है वह यह है: OSX के लिए जावा परिनियोजन विकल्प

मैंने अपने कोड को एक .jar फाइल में संकलित किया है, मेरे पास एक आइकन और सब कुछ है, मुझे जो कुछ करना है, वह पैकेज किसी भी तरह से .app फ़ाइल में है।

अग्रिम में मदद के लिए धन्यवाद!

उपाय

संपादित करें: मुझे मिल गया! 7 या 8 घंटे खोज और पढ़ने के बाद काम करता है। चूंकि मैं इसके लिए नया हूँ, मैं उन सभी चीजों को पोस्ट करने जा रहा हूं जो मैंने दूसरों को बचाने के लिए सीखा है जो दर्द से गुज़रने से एक ही समस्या में चलते हैं। मैंने इसे अपने तरीके से दिया और जारबंडलर पर वापस चला गया। यदि कोई और यह पढ़ रहा है और उन्हें एएनटी के बारे में कुछ नहीं पता है, तो यहां मैंने किया है: जेरबंडल डाउनलोड करें, मुझे यहां से मिला है: मैक ओएस एक्स जेरबंडलर एंट टास्क और वहां दिए गए निर्देशों का पालन करें।

जब आप इसे डाउनलोड करते हैं, तो jarbundler-2.2.0.jar फ़ाइल को यहां डालें:

/ Usr / share / चींटी / lib

आपको इसे स्थानांतरित करने के लिए एक कमांड चलाया जा सकता है, जैसे कुछ:

सुडो एमवी जर्बंडलर-2.2.0.जर ~ /../../ यूजर / शेयर / एंट / लिब / जर्बंडलर-2.2.0.जर

जैसे मैंने कहा, मैं अब भी सीख रहा हूं, लेकिन यह मेरे लिए काम किया।

सुनिश्चित करें कि आप सही जर्बुंडर चले गए, यह वह जगह है जहाँ मैं समस्याओं में भाग गया, मैंने अंदरूनी .jar फ़ाइल की बजाय पूरे फ़ोल्डर को स्थानांतरित कर दिया, इसलिए सुनिश्चित करें कि आप उस फ़ोल्डर को अंदर ले जाते हैं जो कि आपने फ़ोल्डर ज़िप के अंदर डाउनलोड किया है, पूरी बात नहीं , अन्यथा जब आप इसे बनाने के लिए जाते हैं, तो आपको त्रुटि की तरह कुछ कहने में त्रुटि मिलेगी: taskdef class net.sourceforge.jarbundler.JarBundler नहीं मिला।

उसके बाद आपको अपना कोड एक .jar फ़ाइल में संकलित करना होगा (दो प्रकार हैं, एक .zip की तरह है और दूसरा एक निष्पादन योग्य है) आप एक सामान्य JAR फ़ाइल चाहते हैं, निष्पादन योग्य नहीं है, ऐसा करने के लिए आपको पहले संकलित करने की आवश्यकता है क्लास फाइल प्राप्त करने के लिए आपका कोड, फिर एक कमांड प्रॉम्प्ट खोलें और यहां दिए गए निर्देशों का पालन करें: एक जार फ़ाइल बनाएं कमांड इस तरह दिखाई देगा:

जार सीएफ myName.jar * .class

एक बार जब आप अपनी जार फ़ाइल बनाते हैं, तो आपको उसी फ़ोल्डर में .xml फ़ाइल बनाने की आवश्यकता होती है और उसे build.xml कहा जाना चाहिए। इसे एक टेक्स्ट एडिटर के साथ संपादित करें ऊपर दिए गए लिंक पर दिए गए निर्देशों का पालन करें। यह कुछ ऐसा दिखाई देगा:

//build.xml

<project name="MyProject">

<taskdef name="jarbundler"
classname="net.sourceforge.jarbundler.JarBundler" />

<target name="bundle">

<jarbundler dir="release"
        name="Apollo's Image Editor"
        mainclass="ImageEditorGUI" 
        jar="ApolloIE.jar"
        icon="Aperture.icns" />

</target>

</project>

वहां से (मैं एक मैकबुक प्रो का उपयोग कर रहा हूं) आपको बस उस फ़ोल्डर से कमांड लाइन चलाने की ज़रूरत है:

चींटी बंडल

और इसे रिलीज़ के नाम से एक फ़ोल्डर में .app फ़ाइल बनाना चाहिए। तो संक्षेप करने के लिए: आपको अपनी जेजर फ़ाइल और बिल्ड.एक्सएम फ़ाइल को उसी फ़ोल्डर में की जरूरत है, और उसके बाद कमांड चलाएं: चींटी बंडल (या जो भी आपने अपने लक्ष्य को build.xml फ़ाइल में रखा है, मैंने इसे बंडल रखा है)

शुभकामना, आशा है कि इसमें किसी को भी मदद मिलेगी।

अगर कोई सोच रहा है, तो मैंने Info.plist को जेरबंडर द्वारा जेनरेट किया था और इसे मैं बनाने वाली निर्देशिका में डाल दिया और यह काम किया! तो यही समस्या थी, मुझे नहीं पता था कि इसे कैसे ठीक करें ... यहां यह है: Info.plist


मैक ओएस एक्स पर, एक आवेदन बंडल एक ऐसी निर्देशिका है जिसमें। .app में समाप्त होने वाला नाम है और जिसमें एप्लिकेशन द्वारा उपयोग किए गए संसाधन शामिल हैं। यह गेम एक ऐसा उदाहरण है जो ant बनाने वाली स्क्रिप्ट का उपयोग करके बंडल का निर्माण करता है। अतिरिक्त संदर्भों का यहां उल्लेख किया गया है ।







executable-jar