2010-04-12 69 views
0

即使如此jar文件存在并位于正确的文件夹中,我得到了NoClassDefFoundError。为什么?我做错了什么?Jsystem AutoITAgent不起作用 - java.lang.NoClassDefFoundError:org/apache/xmlrpc/WebServer

The Classpath definition is .\thirdparty\lib\;C:\jsystem\runner\lib\ant-jsystem.jar;C:jsystem\runner\lib\cli.jar;C:\jsystem\runner\lib\commons-logging-1.1.jar;C:\jsystem\runner\lib\embeddedCatalina.jar;C:\jsystem\runner\lib\fileParser.jar;C:\jsystem\runner\lib\filetransfer.jar;C:\jsystem\runner\lib\j2autoit.jar;C:\jsystem\runner\lib\jsystem-launcher.jar;C:\jsystem\runner\lib\jsystemAgent.jar;C:\jsystem\runner\lib\jsystemApp.jar;C:\jsystem\runner\lib\jsystemCommon.jar;C:\jsystem\runner\lib\jsystemCore.jar;C:\jsystem\runner\lib\snmp.jar;C:\jsystem\runner\lib\stations.jar;C:\jsystem\runner\lib\swing.jar;C:\jsystem\runner\lib\tcl.jar;C:\jsystem\runner\lib\vbshell.jar;C:\jsystem\runner\lib\web.jar;C:\jsystem\runner\lib\wget.jar; 
C:\jsystem\runner\lib\xmlrpc-client-3.1.3.jar; 
C:\jsystem\runner\lib\xmlrpc-common-3.1.3.jar; 
C:\jsystem\runner\lib\xmlrpc-server-3.1.3.jar; 
C:\jsystem\runner\lib\j2autoit\j2autoit.jar 
C:\jsystem\runner 
Setting J2AutoIt Agent to use the port: 8888 
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/xmlrpc/WebServer 
    at com.jsystem.j2autoit.AutoItAgent.startAutoItWebServer(AutoItAgent.java:665) 
    at com.jsystem.j2autoit.AutoItAgent.main(AutoItAgent.java:348) 
    Caused by: java.lang.ClassNotFoundException: org.apache.xmlrpc.WebServer 
     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) 
     at java.lang.ClassLoader.loadClassInternal(Unknown Source) 
     ... 2 more 

回答

0

的问题您正在使用的版本为XML-RPC。该包已从version 2移至version 3。但要使用它,您应该删除第三方目录的XML-RPC。并看到你有现在的版本(我认为你的情况是version 3)。

0

我发现了。\第三方\ LIB \和\ thridparty \ commonLib必须添加到classpath,摆脱错误的。

如果不加\ thridparty \ commonLib您将收到以下错误:

Exception in thread "Thread-5" java.lang.NoClassDefFoundError: org/apache/commons/codec/DecoderException 

目前我已经修改了runAutoItAgent.bat如下:

@echo OFF 
rem Runs AutoIt agent 

set current_dir=%~dp0 
set current_drive=%~d0 
%current_drive% 
cd %current_dir% 

setlocal ENABLEDELAYEDEXPANSION 
set CLASSPATH=.\thirdparty\lib\ 
FOR /R .\lib %%G IN (*.jar) DO set CLASSPATH=!CLASSPATH!;%%G 
FOR /R .\thirdparty\commonLib %%G IN (*.jar) DO set CLASSPATH=!CLASSPATH!;%%G 
FOR /R .\thirdparty\lib %%G IN (*.jar) DO set CLASSPATH=!CLASSPATH!;%%G 

echo The Classpath definition is %CLASSPATH% 

java -classpath "%CLASSPATH%;." com.jsystem.j2autoit.AutoItAgent 8888 

rem Make sure that we see the output 
@echo ON 

pause