2012-09-13 14 views
12

मैं स्काला के एक नौसिखिया हूँ, यह पहली बार मैं स्काला चल रहा हूँ है, जब मैं स्काला स्थापित, मैं Hello.scala नामक फ़ाइल बना, सामग्री है:मैं स्कैला फ़ाइल निष्पादित क्यों नहीं कर सकता?

println("HelloWorld!") 

जब मैं scala टाइप किया है, वहाँ कोई था समस्या, स्केला आरईपीएल दिखाया गया था, लेकिन जब मैं scala Hello.scala टाइप किया है, यह संकेत दिए जाने पर:

<console>:1: error: ';' expected but '.' is found. 

मुझे पता है कि समस्या क्या है न, मुझे आशा है कि कोई मेरी मदद कर सकते हैं।

उत्तर

8

आपकी फ़ाइल Hello.scala एक स्क्रिप्ट है। आपको इसे कमांड प्रॉम्प्ट से scala Hello.scala से चलाने में सक्षम होना चाहिए।

$ scala Hello.scala 
HelloWorld! 

दूसरी तरफ, आरईपीएल स्क्रिप्ट चलाने के लिए नहीं है। यह स्केला कोड सीधे चलाने के लिए प्रयोग किया जाता है:

scala> println("HelloWorld!") 
"HelloWorld!" 
12

scala <filepath> के बजाय :load <filepath> आदेश का उपयोग आरईपीएल में बाहरी स्क्रिप्ट (यह से सभी परिभाषाओं लोड) पर अमल करने के लिए।

» echo 'println("HelloWorld")' > Hello.scala 
» scala 
Welcome to Scala version 2.9.2 (OpenJDK Client VM, Java 1.6.0_24). 
Type in expressions to have them evaluated. 
Type :help for more information. 

// is this what you tried to do? 
scala> scala Hello.scala 
<console>:1: error: ';' expected but '.' found. 
    scala Hello.scala 

// do this instead 
scala> :load Hello.scala 
Loading Hello.scala... 
HelloWorld 

scala> 
1

बस मुझे पता है कि सारांश का सारांश। मैं स्केल फ़ाइल को ठीक से चलाने के तरीके से उलझन में था।

  1. स्क्रिप्ट फ़ाइलें के लिए:

    संक्षेप में, हम इस लक्ष्य को हासिल करने के लिए 3 तरीके मिला है। स्क्रिप्ट के लिए, इसका मतलब यह है कि आप आरईपीएल में कथन की रेखा टाइप करते हैं, या एकाधिक लाइनों को पेस्ट करने के लिए :paste मोड का उपयोग करते हैं। की तरह कुछ:

    println ("foo")

  2. एक वस्तु scalac साथ मुख्य विधि युक्त संकलित करें। आप आसानी से कार्यान्वित करने के लिए extends ऐप विशेषता कर सकते हैं।

    डीईएफ़ मुख्य (args: सरणी [स्ट्रिंग]): यूनिट

आप कह सकते हैं "तुम झूठे, वहाँ सिर्फ दो तरीके हैं"। लेकिन दूसरे के लिए, मुझे लगता है कि इसे चलाने के कई तरीके हैं।

  1. scala -howtorun:object ObjectName -cp "./": -cp सिर्फ बीमा के लिए है।
  2. java -cp "/path/to/your/scala-jars" ObjectName: तो अंतर केवल वर्गपाथ को शामिल करने की आवश्यकता है।
1

आप यूनिक्स के कुछ स्वाद पर हैं, तो आप फ़ाइल के शीर्ष पर एक पाउंड धमाके निर्देश prepending द्वारा एक खोल स्क्रिप्ट के रूप में एक स्काला स्क्रिप्ट चला सकते हैं।

उदाहरण के लिए, helloarg नाम की एक फ़ाइल में निम्न लिखें:

#!/bin/sh 
exec scala "$0" "[email protected]" 
!# 
// Say hello to the first argument 
println("Hello, "+ args(0) +"!") 

प्रारंभिक #!/bin/sh फ़ाइल में बहुत पहली पंक्ति होना चाहिए।
एक बार जब आप अपने अमल अनुमति सेट:

$ chmod +x helloarg 

आप बस कह कर एक खोल स्क्रिप्ट के रूप में स्काला स्क्रिप्ट चला सकते हैं:

$ ./helloarg globe 

आप Windows पर हैं, तो आप एक ही प्रभाव को प्राप्त कर सकते हैं

::#! 
@echo off 
call scala % 0 % * 
goto :eof 
::!# 
8
0

यह विकास के लिए मैक में काम करता है।

#!/usr/bin/env scala -nc 
println("hello"); 
1

आप स्केला आरईपीएल है.आप में यह क्रियान्वित रहे हैं, तो नीचे दिए गए

:load [scala file path] 

आउटपुट के रूप में उपयोग करना चाहिए के रूप में नीचे होगा

परिभाषित "objectname"

फिर मुख्य विधि को अगली कमांड

के रूप में आमंत्रित करें
objectname.main(Array()) 

मुख्य कार्य

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

अंदर

https://www.scala-lang.org/documentation/getting-started.html

0

लिखें println बयान अधिक विस्तृत जानकारी के लिए नीचे दिए गए यूआरएल का संदर्भ लें तो निष्पादित करें: स्केला HelloWorld।स्केला

0

जब आप स्केला को चलाने के लिए नीचे दिए गए चरणों का पालन करें कोशिश कर रहे हैं:

scala /home/prakash/Desktop/babyname.scala < /home/prakash/Desktop/ND: cmd शीघ्र नीचे

से

  1. न खुला स्केला आरईपीएल
  2. उपयोग scala <filename.scala><Input if any> उदाहरण है

    नोट: उपरोक्त आदेश को यूनिक्स cmd प्रॉम्प्ट में टाइप किया जाना चाहिए, स्कैला प्रतिलिपि में नहीं।

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