1

我是 GATE Embedded 的新手,我尝试了简单的示例并得到 NoClassDefFoundError。首先,我将解释我尝试了什么

  1. 在D:\project\gate-7.0中下载并提取 Gate 7.0
  2. Netbean 创建新项目 --> 添加库 gate.jar 和 lib 文件夹
  3. 试图执行简单的java代码
public static void main(String args[]) throws GateException, IOException 
 {
  // initialise the GATE library
  Out.prln("Initialising GATE...");
  Gate.init();
  Out.prln("...GATE initialised");
}

运行时出现错误

Initialising GATE...
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/log4j/Logger
        at gate.Gate.<clinit>(Gate.java:83)
        at gatedemo.StandaloneDemo.main(StandaloneDemo.java:84)
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger

我认为错误与类路径有关。

4

1 回答 1

3

Netbean 创建新项目 --> 添加库 gate.jar 和 lib 文件夹

您需要应用程序的类路径包含文件lib夹内的所有 JAR 文件,而不是文件夹本身。

请注意,一旦您解决了这个问题,您可能会收到一条警告说 GATE“无法初始化 Log4J” - 为了避免这种情况,请将 GATE 的bin目录也添加到应用程序的类路径中,在项目的顶级 src 目录中创建自己的目录,或者添加log4j.properties

org.apache.log4j.BasicConfigurator.configure();

在您的main方法的顶部。

PS 我还建议您使用更新的 GATE(7.1 或当前快照),除非您有特定原因必须使用旧版本。

于 2013-11-18T11:38:54.453 回答