2010-12-09 7 views
52

के लिए ग्रहण में चलाएं कॉन्फ़िगर करें मैं स्कैला में एक नौसिखिया हूं। मैंने ग्रहण में स्कैला आईडीई स्थापित किया और अब मैं अपना आवेदन प्रोग्राम चलाऊंगा। यह "स्केल एप्लिकेशन के रूप में चलाएं" दिखाता है, इसके बजाय यह "जावा एप्लिकेशन के रूप में चलाएं" या "जावा एप्लेट"स्कैला

मैंने "रन कॉन्फ़िगरेशन" खोला और "स्कैला एप्लिकेशन" पर क्लिक किया और मेरा प्रोजेक्ट नाम "परीक्षण" है और दूसरा कॉलम "क्लास मेन" का है। मुझे भरने के लिए क्या करना है? मैंने "मेनस्काला" भर दिया, लेकिन यह कहता है "मुख्य मेन क्लास main.scala नहीं मिला"।

क्या आप इस परियोजना को चलाने में मेरी मदद कर सकते हैं?

+2

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

उत्तर

8

यदि आपने एक्लिप्स के लिए स्कैला प्लगइन स्थापित किया है, तो स्कैला परिप्रेक्ष्य खोलें। फिर अपनी प्रोजेक्ट पर राइट-क्लिक करें और "कॉन्फ़िगर करें" मेनू में "स्केल प्रकृति जोड़ें" का चयन करें।

अब आपको अपने स्कैला एप्लिकेशन चलाने में सक्षम होना चाहिए।

+1

मैंने प्रोजेक्ट पर दायाँ क्लिक किया और कॉन्फ़िगर मेनू में मैंने केवल जावास्क्रिप्ट प्रोजेक्ट में कनवर्ट किया और जावा प्लगइन प्रोजेक्ट में कनवर्ट किया। मैं केवल स्केल विचार स्थापित करता हूं, स्कैला आदर्श स्केल प्लगइन से अलग है। – raghav

+0

नहीं, यह वही नहीं है। ग्रहण के लिए स्कैला आईडीई का उपयोग करने के लिए आपको यह छोटा वीडियो देखना चाहिए: http://www.youtube.com/watch?v=PtkNg4mK4NY – jopasserat

0

जब तक आपके पास एक मजबूत कारण नहीं है कि आपको ग्रहण की आवश्यकता क्यों है, तो क्या मैं अनुशंसा करता हूं कि आप IntelliJ को आजमाएं?

संस्करण 10 आज पहले जारी किया गया था, और (फ्री) समुदाय संस्करण इंटेलिजे स्कैला प्लगइन के साथ पूरी तरह से खुश है।

+0

व्यक्तिगत रूप से मैं परियोजना युग्मन स्कैला और जावा विकसित करने के लिए नेटबीन्स का उपयोग करता हूं। स्कैला एकीकरण नवीनतम संस्करणों में खराब नहीं है (मैं रात के निर्माण के साथ काम करता हूं) और प्रोजेक्ट बिल्ड अद्भुत रूप से मैवेन द्वारा संभाला जाता है। – jopasserat

+0

"बुरा नहीं है" बिल्कुल प्रशंसा की ऊंचाई नहीं है ... मैं इंटेलिजे में जावा-स्काला हाइब्रिड परियोजनाओं से बहुत खुश हूं, उदाहरण के लिए भाषाओं में एक नाम बदलें रिफैक्टरिंग करें। जब आप मेवेन से आगे बढ़ने के लिए तैयार होते हैं, तब भी इसमें एसबीटी समर्थन होता है, हालांकि उस हिस्से को अभी भी थोड़ा परिपक्व होना चाहिए। –

2

मैं स्काला अनुप्रयोगों कि आवेदन विस्तार चल रहा है, लेकिन एक उचित मुख्य विधि के साथ वस्तुओं चल रहा है, यानी ग्रहण के लिए स्काला आईडीई के साथ मुद्दों था def main(args:Array[String]) {/*...*/} मुझे हमेशा के लिए ठीक काम करता है।

46

आप, पूरी परियोजना यह एक "मुख्य वर्ग" होना चाहिए चलाना चाहते हैं तो अपने स्काला के किसी भी आप को परिभाषित किया जाना चाहिए वस्तुओं में:

def main(args:Array[String]) { <some nice code here> } 

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

लेकिन दूसरी तरफ यदि आप केवल एक स्काला आपत्ति यह, अनुप्रयोग का विस्तार करना चाहिए अगर यह ऐप विस्तार नहीं करता है, स्काला आईडीई में शामिल नहीं होगा चलाना चाहते हैं "स्काला आवेदन के रूप में चलाएं ..." पर:

package greeter 
object Hello extends App { 
    println("Hello, World!") 
} 
+3

धन्यवाद, यह मेरे लिए भी काम करता है, ठीक है क्योंकि मेरा सिर कीबोर्ड पर कुछ बड़ा नुकसान करने वाला था। –

+0

मेरी समस्या यह है कि यदि मेरा संपादक कक्षा को मुख्य विधि के साथ केंद्रित नहीं करता है, तो स्केल एप्लिकेशन के रूप में चलाएं वहां नहीं है। क्या आप जानते हैं कि ऐसा क्यों है? – Arne

+2

इसे मुख्य! हमें "ऑब्जेक्ट" और "कक्षा" नहीं होना चाहिए –

22

अपनी परियोजना पर राइट क्लिक करें और "स्कैला कंपाइलर" सेटिंग्स की जांच करें। "प्रोजेक्ट विशिष्ट" चेकबॉक्स को चेक करें और जांचें कि क्या आप अपना स्कैला ऑब्जेक्ट चला सकते हैं (जो ऐप का विस्तार करना चाहिए)।

+2

यह मैक – German

+0

के लिए नवीनतम स्कैला आईडीई स्थापित करते समय मेरे लिए काम करता है हां, मुझे सोलन मिला था। मैक ओएस में –

2

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

15

कोड अपने स्रोत निर्देशिका के अंतर्गत निर्देशिका संरचना से मेल खाता है अपने स्रोत में सुनिश्चित करें कि आपके घोषित पैकेज बनाते हैं।

इस मामले में

, एक sourcefile घोषित पैकेज "स्वागतकर्ता" स्केला के रूप में यदि स्रोत फ़ाइल src के तहत वास्तव में ऑटो चलेंगे/स्वागतकर्ता/Hello.scala (और न सिर्फ src/Hello.scala के तहत)

यह एक आम गलती है जो सिंटैक्स चेकर द्वारा हाइलाइट नहीं की जाती है।इस लिंक Scala IDE

पुनः प्रारंभ ग्रहण से

+2

यह मेरी समस्या तय है। मुझे नहीं लगता था कि संकुल को स्कैला में निर्देशिका संरचना से मेल खाना पड़ेगा ... लेकिन जाहिर है कि मैं वैसे भी एक नोब हूं :) – user1020853

+2

स्रोत फ़ाइल को चलाने के लिए ग्रहण करने के लिए "src/main/scala /" फ़ोल्डर के अंतर्गत होना चाहिए आवेदन – sgsi

4

डाउनलोड,, स्काला परियोजना बनाने के तो स्काला वस्तु बना सकते हैं और इस टाइप करें। स्काला आवेदन

+3

आपकी ऑब्जेक्ट ऐप से बढ़नी चाहिए। फिर आप स्कैला एप्लिकेशन –

+0

@ जुलिएन लेकवेल्ज़ के रूप में चलाने में सक्षम होंगे। मैं आपके सुझाव – Ramu

1

मैं इसी तरह की समस्या आ रहा था के रूप में

package greeter 

    object Hello { 
     def main(args:Array[String]) { 
      println("Hello, World") 
     } 
    } 

भागो। सुनिश्चित करें कि आपका जावा और स्कैला फ़ाइलें एक ही पैकेज में नहीं हैं। मैंने पैकेज नाम बदल दिए और यह मेरे लिए काम किया

0

बस एक सूचक .. मुझे भी एक ही कठिनाई का सामना करना पड़ा। स्पार्क ऑब्जेक्ट बनाने के बजाय जावा से अनुभवी होने के कारण मैं स्पार्क क्लास बना रहा था कि मुझे यह विकल्प क्यों नहीं मिला।

आशा है कि मेरा अनुभव मदद करता है।

1

सही परियोजना पर क्लिक करें -> चलाएँ विन्यास पर क्लिक करें -> चलाएँ विन्यास विंडो में अंदर एसबीटी उपकरण का ग्रहण आदेश चलाने के लिए "स्काला आवेदन" का चयन करें

Run Configurations Window

+0

के साथ अपनी समस्या को हल करने में सक्षम था, आपको अपनी कक्षा को ऑब्जेक्ट के रूप में परिभाषित करने की भी आवश्यकता है। – Rishu

0

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

$ sbt 
    > eclipse 
    [info] About to create Eclipse project files for your project(s). 
    [info] Updating {file:/...path-to-your-project}root... 
    [info] Resolving jline#jline;2.12.1 ... 
    [info] Done updating. 
    [info] Successfully created Eclipse project files for project(s): 
    [info] your-project-name 

किया गया! अब ग्रहण के कार्यक्षेत्र में अपनी परियोजना आयात करें

0

मुझे ग्रहण लुना स्कैला आईडीई का उपयोग करके यह समस्या थी। उपर्युक्त समाधान में से कोई भी मेरी Main.scala फ़ाइल को संकलित करना संभव नहीं बना।

package main.scala 

object Main { 
    def main(args: Array[String]){ 
    println("Hello, I am the main object") 
    } 
} 

समस्या निम्न थी: मेरी परियोजना ने केवल जेआरई सिस्टम लाइब्रेरी का संदर्भ दिया लेकिन स्कैला लाइब्रेरी नहीं। मैं निम्न चरणों का पालन किया जाता है:

  1. सही परियोजना गुण
  2. जावा पथ बिल्ड
  3. चेक पर क्लिक करते हैं स्काला पुस्तकालय
  4. क्लिक करें याद आ रही है "पुस्तकालय जोड़ें ..."
  5. जोड़े वांछित स्कैला लाइब्रेरी जिसे स्कैला आईडीई के साथ भेज दिया जाना चाहिए था।

फिर, Main.scala फ़ाइल पर जाएं जो आपके प्रोजेक्ट फ़ोल्डर में कहीं झूठ बोल रहा है और इसमें आपका मुख्य कार्य शामिल है। यदि आप फ़ाइल पर राइट-क्लिक करते हैं, तो "स्केल एप्लिकेशन" को "के रूप में चलाएं" के अंतर्गत दिखाई देना चाहिए।