Scala类路径混合java.lang.NoClassDefFoundError

时间:2011-01-10 03:02:27

标签: scala

我正在尝试使用装置库在Scala中做一些事情。该库位于/ Applications / apparat中。编译发生正常,导入正常,但运行时仍然出现此错误。

scalac -classpath /Applications/apparat/\* SimpleObject.scala 
scala -cp . SimpleObject hello.swf

java.lang.NoClassDefFoundError: apparat/utils/TagContainer$

脚本:

  import apparat.utils.TagContainer


  object SimpleObject {
      def main(args : Array[String]) : Unit = {

        val tags = TagContainer.fromFile( args(0) )

     }
  }

我很确定在编译或运行时我会遗漏一些东西。如果我使用命令行解释器,那么脚本工作正常,我没有得到任何错误。例如,可以这样做:

scala -cp /Applications/apparat/\*
Welcome to Scala version 2.8.0.RC3 (Java HotSpot(TM) 64-Bit Server VM, Java 1.6.0_22).
Type in expressions to have them evaluated.
Type :help for more information.

scala> import apparat.utils.TagContainer
import apparat.utils.TagContainer

scala> val tag = TagContainer.fromFile("hello.swf")
tag: apparat.utils.TagContainer = apparat.utils.TagContainer@533790eb

2 个答案:

答案 0 :(得分:0)

scala -classpath /Applications/apparat/\*:. SimpleObject hello.swf

虽然我认为在课程路径中不允许使用外卡。

答案 1 :(得分:0)

想通了。正如Daniel在编译时所说的那样,需要将当前目录放入-cp(:。)中。此外,运行-cp时必须指向相同的类路径。