1
我是Scala的新手。你能否帮我解决一下当我从命令行执行一个Scala类时遇到的问题。来自命令行的Scala RichInt NoClassDefFoundError
在Eclipse中执行下面的代码我得到了预期的结果,即打印了10次“hello”。然而,当我在命令行中执行,使用斯卡拉testArray从包含该文件testArray.class的目录,然后我得到一个异常
java.lang.NoClassDefFoundError: scala/runtime/RichInt$
at TestArray$.main(TestArray.scala:3)
at TestArray.main(TestArray.scala)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
...
我有一个Windows XP机器,安装的Java 1.6。 Scala bin目录包含在PATH中,Scala目录设置为SCALA_HOME。我正在使用Scala 2.9.2。
完整的源:
object TestArray {
def main(args: Array[String]): Unit = {
var index: Int = 10
for (index <- 0 until 10) {
println("hello")
}
}
}
设置环境变量后,您是否重新启动了控制台会话?当您更改任何变量时,Windows不会更新这些变量。顺便说一句,这绝对是一个类路径问题。 – rlegendi
注意:'var index:Int = 10'这行是不必要的。将其从您的代码中删除。 – Jesper
我没有重新启动命令行,并且可以看到使用SET设置了环境变量,例如SCALA_HOME设置为c:\ scala-2.9.2。我正在使用的scala命令拾取包含在PATH中的安装bin目录中的Scala.bat,并且我没有篡改它。 –