2009-10-14 14 views
17

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

यह विकास पर्यावरण में चलता है, लेकिन इसके बाहर नहीं।

उत्तर

13

कुछ समय हो गया है क्योंकि मैंने यह प्रश्न पोस्ट किया है और मैंने सोचा था कि मैं जो कुछ भी ढूंढता हूं उसके लिए मैं जो भी पाता हूं उसे चिपकाऊंगा इस सवाल का जवाब दिया।

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

लीनिंगेन को उदाहरण के रूप में लेना साइट पर निर्देशों का उपयोग करके इसे सेट अप करें और फिर अपने कार्यक्षेत्र में lein new पर कॉल करें। यह आपके प्रोजेक्ट के साथ-साथ आपके स्रोत के लिए उप-फ़ोल्डर बनाने के लिए एक फ़ोल्डर बनाएगा और एक readme फ़ाइल और एक project.clj फ़ाइल का परीक्षण करेगा।

प्रोजेक्ट.क्लज को उन निर्भरताओं के साथ संपादित करें जिनका आप उपयोग करेंगे। देव-निर्भरता निर्भरताएं हैं जिन्हें आपको नीचे दिए गए उदाहरण में दिखाए गए स्वैंक-क्लोजर जैसे विकास के लिए पूरी तरह से आवश्यकता है।

(defproject myproject "0.0.1-SNAPSHOT" 
    :description "My Personal Project." 
    :url "http://example.com/my-project" 
    :dependencies [[org.clojure/clojure "1.1.0"] 
       [org.clojure/clojure-contrib "1.1.0"] 
       [**other dependencies**]] 
    :dev-dependencies [[swank-clojure "1.2.1"]] 
    :main [org.myproject.core]) 

मैं के रूप में आप तो टाइप कर सकते हैं lein swank एक स्वांक उदाहरण है, जिसमें आप Emacs के माध्यम से कनेक्ट कर सकते हैं शुरू करने के लिए स्वांक-clojure उपयोगी पाते हैं।

: मुख्य परिभाषित करता है कि नामस्थान में मुख्य कार्य क्या है।

कॉलिंग lein uberjar एक स्टैंडअलोन जार तैयार करेगा जो तब चलाएगा।

उम्मीद है कि मेरी समस्या होने वाले किसी भी व्यक्ति की सहायता करें!

+0

'त्रुटि: मुख्य वर्ग [prueba.core] 'नहीं ढूंढ सका या लोड नहीं किया जा सका। मैंने ': main' और इसके संबंधित मान को शामिल किया है, और मेरे पास 'नाम' फ़ंक्शन है जो उस नामस्थान में सार्वजनिक है। क्या गलत हो सकता है पर कोई विचार? – m0skit0

+0

हाय @ m0skit0, यह कुछ समय हो गया है जब से मैंने यह लिखा था। क्या आपने अपनी निर्देशिकाओं को उचित रूप से संरचित किया है? इसका मतलब है कि आपका 'project.clj' है जिसमें' src' युक्त 'src' युक्त' prueba' 'core.clj' है? क्या आपने 'लीन नया <प्रोजेक्ट NAME>' का उपयोग किया था और फिर बनाई गई 'core.clj' फ़ाइल को संपादित किया था? यदि नहीं, तो क्या आप समझ सकते हैं कि आपने यथासंभव स्पष्ट रूप से क्या किया है? – toofarsideways

+0

परियोजना संरचना सही है क्योंकि यह लीनिंगेन द्वारा बनाई गई है। अंत में 'defproject' के लिए निम्नलिखित वाक्यविन्यास': main root.scriptlauncher: aot [root.scriptlauncher] 'का उपयोग कर इसे काम करने के लिए मिला। – m0skit0

3

मुझे को प्रोजेक्ट के लिए "निर्भरता" के रूप में क्लोजर.जर और क्लोजर-contrib.jar को जार में शामिल करने के कारण जोड़ा गया था। एक बार मुझे पता चला कि मैं परिणामस्वरूप जार चलाने में सक्षम था। ध्यान रखें कि नेटबीन्स का अपना क्लोजर.जर है जिसका प्रयोग प्लगइन को स्वयं चलाने के लिए किया जाता है और इसे एक ही क्लोजर.जर का उपयोग करने की आवश्यकता नहीं है जो आपका प्रोग्राम उपयोग करता है। लाइब्रेरी जोड़ने के लिए नेटबीन्स के पास मेनू है। आपको क्लोजर [-contrib] .jar दोनों को बिल्ड और रन लाइब्रेरीज़

+0

मैंने परियोजना को संकलित समय और रन टाइम लाइब्रेरी दोनों के रूप में जोड़ने की कोशिश की है, लेकिन अब तक कोई भाग्य नहीं है। – toofarsideways

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