对Gate来说,对Java和Eclipse来说实际上也不老;并且想要运行第一次安装测试。
我做了什么:
下载gate-7.0-build4195-ALL并将其解压缩到C:\
将环境变量CLASSPATH更改为“。;%JAVA_HOME%\ lib;%JAVA_HOME%\ lib \ tools.jar; C:\ gate-7.0-build4195-ALL \ bin \ gate.jar; C:\栅极 - 7.0-build4195-ALL \ lib中“
在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
我错过了什么吗? 谢谢
答案 0 :(得分:1)
您不应该设置CLASSPATH环境变量。如果要在Eclipse项目中使用JAR文件,则应将它们添加到项目的构建路径中。
对于GATE,您需要bin/gate.jar
以及lib
中的所有JAR文件,但您在构建路径上不需要lib
目录。
答案 1 :(得分:0)
我在java中使用带有netbeans的GATE API,当我使用junit集成测试时,我遇到了这个错误。诀窍是在没有测试的情况下构建项目,一旦构建完成,您可以像使用GATE一样运行测试。
例如我在测试函数的开头有这个:
@Test
public void test()
{
if(false)
{
assertEquals(true, true);
return;
}
...
Testing GATE
要在没有测试的情况下构建jar,您只需要设置为true。这似乎与GATE使用的jar的类路径有关。