Подтвердить что ты не робот

Почему я не могу выполнить файл scala?

Я новичок в Scala, это первый раз, когда я запускаю Scala, когда я установил Scala, я создал файл с именем Hello.scala, содержимое:

println("HelloWorld!")

когда я набрал scala, не было никаких проблем, был показан scala REPL, но когда я набрал scala Hello.scala, он запросил:

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

Я не знаю, в чем проблема, я надеюсь, что кто-то может мне помочь.

4b9b3361

Ответ 1

Чтобы выполнить внешний script (загрузите все определения из него) в команду REPL use :load <filepath> вместо scala <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>

Ответ 2

Ваш файл Hello.scala является script. Вы можете запустить его из командной строки с помощью scala Hello.scala.

$ scala Hello.scala 
HelloWorld!

REPL, с другой стороны, не для запуска скриптов. Он используется для прямого запуска кода scala:

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

Ответ 3

Ответ 4

Просто резюме того, что я знаю. Я был смущен тем, как правильно запустить файл scala.

В итоге у нас есть 3 способа достичь этого:

  • Для script файлов. Для script это означает, что это так же, как вы набираете строки операторов в REPL, или используйте режим :paste для вставки нескольких строк. Что-то вроде:

    Println ( "Foo" )

  • Скомпилируйте объект, содержащий основной метод, с помощью scalac. Вы можете extends черту приложения легко реализовать.

    def main (args: Array [String]): Unit

Вы можете сказать: "Ты лжец, есть только два пути". Но для второго я думаю, что есть способы его запуска.

  • scala -howtorun:object ObjectName -cp "./": -cp предназначен только для страхования.
  • java -cp "/path/to/your/scala-jars" ObjectName: Таким образом, разница заключается только в том, что класс должен быть включен.

Ответ 5

Если вы используете какой-то вкус Unix, вы можете запустить Scala script в качестве оболочки script добавив директиву фунт стерлингов в верхней части файла.

Например, введите в файл с именем helloarg следующее:

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

Начальная #!/bin/sh должна быть самой первой строкой в ​​файле.
Как только вы установите разрешение на выполнение:

$ chmod +x helloarg

Вы можете запустить Scala script как оболочку script, просто сказав:

$ ./helloarg globe

Если вы работаете в Windows, вы можете добиться такого же эффекта, назвав файл helloarg.bat и поместив его в начало script:

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

Ответ 6

Если вы выполняете его в scala REPL. Вы должны использовать, как показано ниже

:load [scala file path]

вывод будет ниже

определено "objectname"

Затем вызовите основной метод в качестве следующей команды

objectname.main(Array())

Обратитесь к приведенному ниже URL для получения более подробной информации

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

Ответ 7

Это работает в mac для разработки.

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

Ответ 8

Напишите инструкцию println внутри основной функции

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

Затем выполните: scala HelloWorld.scala

Ответ 9

Когда вы пытаетесь запустить scala, выполните следующие шаги:

  • Не открывайте scala REPL
  • использовать scala <filename.scala><Input if any> из командной строки
Ниже приведен пример

:

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

Примечание: команда выше должна быть введена в командной строке unix cmd, а не в scala repl.