我正在尝试在本地计算机上运行Lucene Java应用程序。我得到了这个编译错误:
package org.apache.commons.digester does not exist
因为
import org.apache.commons.digester.Digester;
编译器是不是从Internet上下载了包? 如果没有,我该怎么办?
答案 0 :(得分:4)
不,编译器不会从Internet下载软件包。如果正确配置它们并将包添加到项目依赖项中,某些构建管理工具(如Maven)会执行此操作。但是如果没有这样的工具,你应该手动下载jar并将它放在编译器类路径上。
答案 1 :(得分:1)
如果您使用Maven,可以通过添加以下依赖项来下载lib:
<dependency>
<groupId>commons-digester</groupId>
<artifactId>commons-digester</artifactId>
<version>2.1</version>
否则你必须下载here。然后只需将.jar添加到Buildpath中。
答案 2 :(得分:0)
如果您正在使用 maven 并将其添加为依赖项,那么它将为您下载它。否则
您可以从适当版本的here下载。并将其添加到您应用的课程路径
答案 3 :(得分:0)
导入时,编译器不会从Internet下载软件包。 naming convention for packages使它们看起来像URL,但它们不是,编译器当然不会尝试下载依赖项。
这个想法是,如果Java库的所有创建者都符合此约定并在包名称中使用其域名,则可以避免来自不同作者的库之间的类名冲突。但是,如前所述,这只是一个命名约定,并且与依赖关系管理有关。
某些构建工具(如Maven)具有复杂且易于使用的dependency management mechanisms.流行的Ant构建工具也具有此功能Ivy dependency manager.