Java 获取ClassNotFoundException,尽管jar在类路径中

Java 获取ClassNotFoundException,尽管jar在类路径中,java,json,amazon-ec2,classpath,buildpath,Java,Json,Amazon Ec2,Classpath,Buildpath,我在AmazonEC2实例(linux服务器)上运行Java应用程序。我在构建路径中包含了一个json jar,我检查了类路径,它就在那里。当我导入类时 import org.json.*; 我没有得到任何编译错误,但是当我执行我的应用程序时,我得到了ClassNotFoundException Exception in thread "Thread-1" java.lang.NoClassDefFoundError: org/json/JSONException at Group.r

我在AmazonEC2实例(linux服务器)上运行Java应用程序。我在构建路径中包含了一个json jar,我检查了类路径,它就在那里。当我导入类时

import org.json.*;
我没有得到任何编译错误,但是当我执行我的应用程序时,我得到了ClassNotFoundException

Exception in thread "Thread-1" java.lang.NoClassDefFoundError: org/json/JSONException
    at Group.run(Group.java:62)
    at java.lang.Thread.run(Thread.java:744)
Caused by: java.lang.ClassNotFoundException: org.json.JSONException
    at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:425)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:358)

有人知道如何修复吗?

使用java反编译器工具,检查jar中是否存在类json异常,或者是否包含必要的jar。

首先,使用导入(如import org.json)被认为是不好的编码实践。*;将其更改为import org.json.JSONException,然后查看代码是否仍然可以编译。如果您使用eclipse,请使用organize导入为您组织它们。另外,请给出您要包含的jar文件的版本和名称。清理并构建您的项目,很可能现在突然出现编译错误,阻止了您的类文件的早期生成。我将其更改为JSONException,仍然无法工作。我从这里下载了jar:我还清理并构建了项目,没有编译错误。它确实存在于jar中。那么可能是两个jar具有相同的类名。请检查您是否有json的多个版本或其他具有jsonexception类的jar。其次,您可以简单地导入jsonexception而不必这样做。*一个只有一个jar。。。我还将其更改为仅导入JSONException,仍然不起作用。我尝试使用另一个名为simpleJson的jar,但我只得到了另一个类名的相同异常:
at Group.run(Group.java:62)at java.lang.Thread.run(Thread.java:744),原因是:java.lang.ClassNotFoundException:org.json.simple.parser.ParseException
检查这个和json simple jar