我正在使用此命令来运行我的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 :(得分:1)
假设你有http-client.jar:
java -cp otpreq.jar:http-client.jar com.otp.req.SendRequest
如果O.S是windows,请替换:by;
注意:最新的httpclient不是位于apache commons,而是位于apache http components
答案 1 :(得分:0)
您必须在类路径中包含所有支持jar(命令行本身)。
或者将所有支持罐绑定在otpreq.jar中。
其中任何一个都可以解决这个问题。