Вот тривиальный scala script:
object test {
def hi() { print("hi there from here") }
}
test.hi()
В командной строке он ожидает:
scala /shared/scaladem/src/main/scala/test.scala
Loading /shared/scaladem/src/main/scala/test.scala...
defined module test
hi there from here
Welcome to Scala version 2.10.2 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_65).
Type in expressions to have them evaluated.
Type :help for more information.
scala>
Но внутри Intellij он дает ошибку компиляции. Щелкните правой кнопкой мыши | Запустить test.scala
expected class or object definition
test.hi()
^
Кстати, я также пробовал работать как рабочий лист scala. Это было намного хуже - тонны вывоза мусора и даже не приблизились к компиляции.
Обновить: похоже, существует более старый, но похожий вопрос:
Как запустить код scala в Intellij Idea 10
Я зашел в Run Configuration и снял флажок "Сделать" в соответствии с инструкциями (это было надоедливо, но пусть будет так).
Однако после внесения этого изменения я получаю другую ошибку:
Exception in thread "main" java.lang.NoClassDefFoundError: scala/Either
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:190)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:113)
Caused by: java.lang.ClassNotFoundException: scala.Either
at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 3 more
Примечание. Scala -Library правильно настроен:
Другое обновление (после комментария @lhuang ниже). Я последовал предложению создать другой проект с нуля. В этом случае рабочий лист scala работал правильно (test.sc). Но scala script (который работает при запуске командной строки через "scala test.scala" ) по-прежнему не работает даже в этом совершенно новом проекте "scala".