2013-02-17 58 views
13

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

मैं हर जगह पढ़ा है और हर किसी को एक ही बातें कहते हैं:

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

    सांत्वना देता है "jarbundler-2.0.0.jar में कोई मुख्य मेनिफ़ेस्ट विशेषता"

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

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

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

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

समाधान

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

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

/usr/share/चींटी/lib

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

sudo mv jarbundler-2.2.0.jar ~ /../../ usr/share/चींटी/lib/jarbundler-2.2.0.jar

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

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

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

जार सीएफ 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 फ़ाइल बनाना चाहिए। तो सारांशित करने के लिए: आपको बस अपनी .jar फ़ाइल और build.xml फ़ाइल को एक ही फ़ोल्डर में चाहिए, और उसके बाद कमांड चलाएं: चींटी बंडल (या जिसे आपने build.xml फ़ाइल में अपना लक्ष्य नाम दिया है, मैंने इसे बंडल नाम दिया है)

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

यदि कोई सोच रहा है, तो मैंने जारबंडलर द्वारा उत्पन्न की गई Info.plist लिया और इसे उस निर्देशिका में डाल दिया जो मैं बना रहा था और यह काम किया! ताकि समस्या थी, मैं तो बस कैसे सही यह फ़ॉर्मेट करने के लिए नहीं पता था ... यहाँ यह है: Info.plist

+0

क्या XCode के संस्करण:

भी इन उत्तरों देखते हैं? – MadProgrammer

+0

एक्सकोड संस्करण 4.6, अभी इसे अपडेट किया गया –

+1

मैंने यह कोशिश नहीं की है, लेकिन आप [this] (http://informagen.com/JarBundler/) – MadProgrammer

उत्तर

2

मैक ओएस एक्स पर, एक application bundle एक निर्देशिका एक नाम .app में समाप्त होने वाले है कि और कहा कि शामिल आवेदन द्वारा उपयोग संसाधन। यह game एक उदाहरण है जो antbuild script का उपयोग कर सीटू में बंडल बनाता है। अतिरिक्त संदर्भ here उद्धृत किए गए हैं।

+0

लिंक के लिए धन्यवाद। मैंने सभी निर्देशिकाओं और फ़ाइलों को बनाया है, अब मुझे केवल जानकारी की आवश्यकता है कि Info.plist में क्या रखा जाए क्योंकि वे कहते हैं कि एक्सकोड आपके लिए इसे उत्पन्न करता है, लेकिन मुझे नहीं लगता कि वे जावा परियोजनाओं का समर्थन करते हैं। क्या आप जानते हैं कि फ़ाइल में होना जरूरी है? मुझे पता है कि मुझे कक्षा में मुख्य विधि के साथ संदर्भ की आवश्यकता है, लेकिन क्या कुछ और है? –

+0

मैं सिर्फ उदाहरण [Info.plist] (http://sourceforge.net/p/robotchase/code/67/tree/trunk/Info.plist) संपादित करता हूं; कुंजी ऊपर दिए गए उत्तर में एक लेख में सूचीबद्ध हैं। – trashgod

+0

अब तक यह लिंक अब तक मेरी सबसे बड़ी सहायता रहा है: [जावा परिनियोजन विकल्प] (http://developer.apple.com/library/mac/#documentation/Java/Conceptual/Java14Development/03-JavaDeployment/JavaDeployment। एचटीएमएल) मैंने उस लिंक में सभी चरणों का पालन किया है और किसी कारण से जब मैं अपने क्लिक को डबल क्लिक करता हूं। कुछ भी नहीं होता है ... –

0

मेरे लिए काम किया! किसी कारण से मैं चींटी क्षेत्र में jarbundler .jar फ़ाइल नहीं डाल सका, लेकिन इसके बजाय इसे 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, मेरा .jar बनाया मेवेन 3.0.4 और इसकी "असेंबली" प्लगइन संस्करण 2.4 का उपयोग कर)।