2012-11-19 54 views
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") 
    }  
    } 
} 
+0

設置環境變量後,您是否重新啓動了控制檯會話?當您更改任何變量時,Windows不會更新這些變量。順便說一句,這絕對是一個類路徑問題。 – rlegendi

+1

注意:'var index:Int = 10'這行是不必要的。將其從您的代碼中刪除。 – Jesper

+0

我沒有重新啓動命令行,並且可以看到使用SET設置了環境變量,例如SCALA_HOME設置爲c:\ scala-2.9.2。我正在使用的scala命令拾取包含在PATH中的安裝bin目錄中的Scala.bat,並且我沒有篡改它。 –

回答

0

檢查的解釋器執行OK源,然後使用Eclipse的scalac外面編譯和執行也確定後我收集了Eclipse部分必須是有過錯的。事實上,我從Eclipse中卸載了scala並從nightly build重新安裝,現在創建的類執行時沒有任何問題。