Объект apache не является членом пакета org - PullRequest
3 голосов
/ 21 ноября 2011
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 ]

3 голосов
/ 21 ноября 2011

Вы не включили файл ant jar в ваш путь к классам.

Компилятор эффективно создает объекты, представляющие структуру вложенного пакета. Уже есть пакет верхнего уровня с именем org из JDK (например, org.xml), но без дополнительных jar org.apache там нет.

2 голосов
/ 01 мая 2015

Я обнаружил, что в общем случае, когда возникает ошибка типа Object XXX is not a member of package YYY, вы должны:

Проверьте, что все ваши файлы находятся в пакете, т.е. не в каталоге src/ верхнего уровня

1 голос
/ 23 ноября 2011

Я экспериментировал с 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
0 голосов
/ 22 ноября 2011

Запустить вместо этого команду 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

0 голосов
/ 21 ноября 2011

Я бы проверил, что 'D: \ tools \ apache-ant-1.7.0 \ lib \ ant.jar' существует, а также проверил бы, не поврежден ли он (длина 0 или не открывается с помощью 'jar tf D: \) инструменты \ Apache-муравей-1.7.0 \ Lib \ подпапка ').

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...