这里是一个简单的Scala脚本:
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工作表运行。那更糟糕 - 大量的垃圾输出,甚至没有编译的机会。
更新:似乎有一个旧的但类似的问题:
我进入了运行配置并取消了勾选"Make"(按照指示这很麻烦,但没办法..)
然而,在进行了那个更改之后,我得到了另一个错误:
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库已经正确设置:另一个更新(在@lhuang下面的评论之后),我按照建议从头开始创建了另一个项目。 在这种情况下,Scala工作表可以正常工作(test.sc)。 但是,一个scala脚本(当通过“scala test.scala”运行命令行时有效)在这个全新的“scala”项目中仍然无法工作。