2012-09-13 2 views
12

내가 스칼라 안돼서, 그것은 내가 스칼라를 실행하는거야 처음이다, 나는 Hello.scala라는 이름의 파일을 생성, 내용은 다음과 같습니다왜 스칼라 파일을 실행할 수 없습니까? 내가 스칼라를 설치할 때

println("HelloWorld!") 

내가 scala를 입력 할 때, 아니이 있었다 문제는, 스칼라 REPL이 표시했지만, 나는 scala Hello.scala를 입력하면 메시지 :

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

내가 어떤 문제를 잘 모릅니다, 나는 누군가가 나를 도울 수 있기를 바랍니다.

답변

8

파일 Hello.scala은 (는) 스크립트입니다. 명령 프롬프트에서 scala Hello.scala으로 실행할 수 있어야합니다.

$ scala Hello.scala 
HelloWorld! 

반면에 REPL은 스크립트를 실행하지 않습니다. 그것은 바로 스칼라 코드를 실행하는 데 사용됩니다 :

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

대신 scala <filepath>:load <filepath> 명령을 사용하여 REPL에서 외부 스크립트를 (그것에서 모든 정의를로드) 실행합니다.

» 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

내가 아는 것의 요약. 나는 scala 파일을 올바르게 실행하는 방법에 혼란 스러웠다.

  1. 스크립트 파일의 경우 :

    은 요컨대, 우리는 이것을 달성하기 위해 3 가지 방법을 얻었다. 스크립트의 경우 REPL에 문장을 입력하거나 :paste 모드를 사용하여 여러 줄을 붙여 넣는 것과 같습니다. 같은 뭔가 :

    에 println ("foo는")는

  2. scalac와 주요 메소드를 포함하는 객체를 컴파일합니다. extends 앱 특성을 쉽게 구현할 수 있습니다.

    데프 주 (인수 : 배열 [문자열]) : 단위

당신은 말할 수 있습니다 "당신은 거짓말 쟁이 두 가지 방법이 있습니다." 하지만 두 번째 경우에는 실행 방법이 너무 많다고 생각합니다.

  1. scala -howtorun:object ObjectName -cp "./" : -cp은 보험용입니다.
  2. java -cp "/path/to/your/scala-jars" ObjectName : 차이점은 클래스 경로가 포함되어야한다는 것입니다. 유닉스의 일부 취향에 경우
1

, 당신은 파일의 상단에 파운드 강타 지시를 앞에 붙이는 쉘 스크립트 같은 스칼라 스크립트를 실행할 수 있습니다.

예를 들어, 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

당신이 스칼라 REPL 우선은 그것을 실행하는 경우

정의 "개체 이름"

다음과 같이 될 것이다

:load [scala file path] 

출력 다음과 같이 사용한다 그런 다음 main 명령을 다음 명령으로 호출하십시오.

objectname.main(Array()) 

그런 다음 주요 기능

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

내에서 더 자세한 정보를 원하시면

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

0

쓰기에 println 문을 아래 URL을 참조하십시오 실행 : 스칼라을 HelloWorld.스칼라

당신이 이하의 절차 스칼라를 실행하려고
0

:

scala /home/prakash/Desktop/babyname.scala < /home/prakash/Desktop/ND 아래

cmd를 프롬프트에서

  1. 망가 개방 스칼라 REPL
  2. 사용 scala <filename.scala><Input if any>은 예입니다

    참고 : 위의 명령은 scala repl가 아닌 unix cmd 프롬프트에서 입력해야합니다.

관련 문제