2016-06-11 169 views
0

我使用这个命令来运行我的jar文件Jar文件执行问题?

java -cp otpreq.jar com.otp.req.SendRequest 

及其给无差错:

Error: A JNI error has occurred, please check your installation and try again 
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/httpclient/methods/RequestEntity 
    at java.lang.Class.getDeclaredMethods0(Native Method) 
    at java.lang.Class.privateGetDeclaredMethods(Unknown Source) 
    at java.lang.Class.privateGetMethodRecursive(Unknown Source) 
    at java.lang.Class.getMethod0(Unknown Source) 
    at java.lang.Class.getMethod(Unknown Source) 
    at sun.launcher.LauncherHelper.validateMainClass(Unknown Source) 
    at sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source) 
Caused by: java.lang.ClassNotFoundException: org.apache.commons.httpclient.methods.RequestEntity 
    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) 
    ... 7 more 

为什么这个错误就要我想不通。

我检查了库和org/apache/commons/httpclient/methods/RequestEntity是一个接口。

回答

0

你必须在类路径中包含所有支持的jar(命令行本身)。

或绑定otpreq.jar中的所有支持jar。

其中之一将解决此问题。

+0

我出口整个项目在Eclipse中JAR文件..这不是要所有的配套罐子绑定otpreq.jar – Mudit

+0

@Mudit内,默认情况下,如果源被导出,IDE将绑定所有的jar。请检查这些东西 - 1)otpreq.jar中的.classpath文件。 2)检查是否从外部路径添加了库3)尝试在命令行中给出类路径(-cp)中的所有库。 – Bhuvanwaitz

1

假设你已经有HTTP-client.jar中:

java -cp otpreq.jar:http-client.jar com.otp.req.SendRequest 

如果O.S是窗户,更换:通过;

注:最新的HttpClient不位于阿帕奇百科全书,但apache http components