Jar文件执行问题?

时间:2016-06-11 12:27:31

标签: java java-native-interface executable-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是一个接口。

2 个答案:

答案 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中。

其中任何一个都可以解决这个问题。