1

Gate 的新手,实际上对 Java 和 Eclipse 也不老;)并且想要运行第一个设置测试。

我做了什么:

  1. 下载gate-7.0-build4195-ALL并解压到C:\

  2. 将环境变量 CLASSPATH 更改为 ".;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar;C:\gate-7.0-build4195-ALL\bin\gate.jar;C:\gate-7.0-build4195-全部\lib"

  3. 在 Eclipse 中创建了一个新的 java 项目,并导航到 gate.jar\gate\TestGate.class 并运行它。

然后我收到以下错误:

Failed to invoke suite(): java.lang.NoClassDefFoundError: org/apache/log4j/Logger
java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at     org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestLoader.getTest(JUnit3TestLoader.java:108)
    at     org.eclipse.jdt.internal.junit.runner.junit3.JUnit3TestLoader.loadTests(JUnit3TestLoader.java:59)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:452)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
    at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
Caused by: java.lang.NoClassDefFoundError: org/apache/log4j/Logger
    at gate.Gate.<clinit>(Gate.java:83)
    at gate.TestGate.suite(TestGate.java:126)
    ... 10 more
Caused by: java.lang.ClassNotFoundException: org.apache.log4j.Logger
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 12 more

我错过了什么?
谢谢你

4

2 回答 2

1

你不应该设置你的 CLASSPATH 环境变量。如果您想在 Eclipse 项目中使用 JAR 文件,您应该将它们添加到项目的构建路径中。

特别是对于 GATE,您需要bin/gate.jar来自 的所有 JAR 文件lib,但您不需要lib构建路径上的目录本身。

于 2012-06-11T12:39:57.070 回答
0

我在 java 中与 netbeans 一起使用 GATE API,当我将测试与 junit 集成时,我遇到了这个错误。诀窍是在不进行测试的情况下构建项目,一旦构建完成,您就可以像往常一样使用 GATE 运行测试。

例如,我在测试函数的开头就得到了这个:

@Test
public void test()
{
        if(false)
        {
            assertEquals(true, true);
            return;
        }

        ...
        Testing GATE

要构建没有测试的jar,你只需要在那边设置为true。似乎与 GATE 使用的 jar 的类路径有关。

于 2013-02-25T14:28:22.363 回答