Почему я не могу выполнить файл scala?
Я новичок в Scala, это первый раз, когда я запускаю Scala, когда я установил Scala, я создал файл с именем Hello.scala
, содержимое:
println("HelloWorld!")
когда я набрал scala
, не было никаких проблем, был показан scala REPL, но когда я набрал scala Hello.scala
, он запросил:
<console>:1: error: ';' expected but '.' is found.
Я не знаю, в чем проблема, я надеюсь, что кто-то может мне помочь.
Ответы
Ответ 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.