对象apache不是包org的成员

时间:2011-11-21 12:15:34

标签: scala

import org.apache.tools.ant.Project

object HelloWorld {
   def main(args: Array[String]) {
      println("Hello, world!")
   }
}

我尝试使用以下命令运行此代码:

java -cp D:\tools\apache-ant-1.7.0\lib\ant.jar;D:\tools\scala-2.9.1.final\lib\scala-compiler.jar;D:\tools\scala-2.9.1.final\lib\scala-library.jar -Dscala.usejavacp=true scala.tools.nsc.MainGenericRunner D:\test\scala\ant.scala

出现以下错误:

D:\test\scala\ant.scala:1: error: object apache is not a member of package org
import org.apache.tools.ant.Project
           ^
one error found

有什么问题?

更新
我可以看到无法导入任何org.xxx包 与javax.xml.xxx包相同的问题。

D:\test\test2.scala:2: error: object crypto is not a member of package javax.xml
import javax.xml.crypto.Data
                 ^
one error found  

实际上我无法导入任何东西!

D:\test\test3.scala:3: error: object test is not a member of package com
import com.test.utils.ant.taskdefs.SqlExt
           ^
one error found

5 个答案:

答案 0 :(得分:3)

您没有在类路径中包含ant jar文件。

编译器有效地构建表示嵌套包结构的对象。已经有一个名为org的顶级软件包来自JDK(例如org.xml),但没有额外的jar org.apache不存在。

答案 1 :(得分:2)

我发现一般情况下,如果出现Object XXX is not a member of package YYY类型的错误,您应该:

检查所有文件是否都在包中,即。不在顶级src/目录

答案 2 :(得分:1)

我使用scala.bat进行了实验(取消注释最后命令行的回显,请参阅以echo "%_JAVACMD%" ...开头的行)并发现这应该有效:

java -Dscala.usejavacp=true -cp d:\Dev\scala-2.9.1.final\lib\scala-compiler.jar;d:\Dev\scala-2.9.1.final\lib\scala-library.jar scala.tools.nsc.MainGenericRunner -cp d:\Dev\apache-ant-1.8.2\lib\ant.jar D:\test\scala\ant.scala

答案 3 :(得分:0)

我会检查'D:\ tools \ apache-ant-1.7.0 \ lib \ ant.jar'是否存在并检查它是否已损坏(长度为0或无法打开'jar tf D:\工具\阿帕奇-ANT-1.7.0 \ lib中\的ant.jar')。

答案 4 :(得分:0)

使用scala命令运行:

scala -cp D:\ tools \ apache-ant-1.7.0 \ lib \ ant.jar; D:\ tools \ scala-2.9.1.final \ lib \ scala-compiler.jar; D:\ tools \ scala-2.9.1.final \ lib \ scala-library.jar D:\ test \ scala \ ant.scala