我是GATE Embedded的新手,我尝试了简单的示例并获取NoClassDefFoundError。
首先,我将解释我尝试过的


在D:\ project \ gate-7.0中下载并提取Gate 7.0
Netbean创建新项目->添加了库gate.jar和lib文件夹
试图执行简单的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


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

最佳答案

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


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

请注意,修复此问题后,您可能会收到一条警告,指出GATE“无法初始化Log4J”-为避免这种情况,请将GATE的bin目录也添加到应用程序的类路径中,或者将create your own log4j.properties添加到项目的顶级src目录中,或者加

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


main方法的顶部。

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

关于java - GATE嵌入式示例NoClassFound错误示例,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20046692/

10-12 23:22