java.lang.ClassNotFoundException:对于org.json.simple.JSONObject

java.lang.ClassNotFoundException:对于org.json.simple.JSONObject,java,eclipse,Java,Eclipse,我已经编写了一段代码,引用了Eclipse中的JSON库 当尝试导出到Jar文件时,我选择了ExportJava源文件和资源选项 我的代码依赖于JSONObject库 现在我已经打包了我所有的文件,当我在linux机器上运行jar文件时,我得到了错误:: # java -cp SendCommand.jar ExecuteShellComand Exception in thread "main" java.lang.NoClassDefFoundError: org/json/simple/J

我已经编写了一段代码,引用了Eclipse中的JSON库

当尝试导出到Jar文件时,我选择了ExportJava源文件和资源选项

我的代码依赖于JSONObject库

现在我已经打包了我所有的文件,当我在linux机器上运行jar文件时,我得到了错误::

# java -cp SendCommand.jar ExecuteShellComand
Exception in thread "main" java.lang.NoClassDefFoundError: org/json/simple/JSONObject
    at ExecuteShellComand.main(ExecuteShellComand.java:19)
Caused by: java.lang.ClassNotFoundException: org.json.simple.JSONObject
    at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:335)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
    ... 1 more
解压缩我的jar文件会产生

# tree
.
├── commons-io-2.5.jar
├── ExecuteShellComand.class
├── ExecuteShellComand.java
├── json-simple-1.1.jar
├── SendCommand.jar
└── META-INF
    └── MANIFEST.MF

1 directory, 6 files

虽然所有必需的文件都存在,但我仍然得到了错误。我在这里遗漏了什么?

类路径参考:右键单击Eclipse中的project->Buildpath->Configure Build path->Java Build path左窗格->LibraryStab->Add External jar->选择您的jar并选择OK


部署程序集:右键单击eclipse中的WAR->Buildpath->Configure Build path->Deployment Assembly left Pane->Add->External file system->Add->Select your jar->Add->Finish。

您需要将json-simple-1.1.jar从SendCommand.jar中分离出来

而是将json-simple-1.1.jar和其他依赖jar复制到当前目录中,以便确认执行以下修改的命令是否有效:

# java -cp SendCommand.jar:commons-io-2.5.jar:json-simple-1.1.jar ExecuteShellComand

不幸的是,这不起作用。同样的错误。My.classpath状态请记住,您可以选择以两种方式运行ExecuteShellComand应用程序:1。使用EclipseIDE或2。使用命令行。注释中列出的.classpath文件条目是针对EclipseIDE的;当从命令行执行时,它们不会被读取,这正是我的答案所关注的。