java.lang.ClassNotFoundException:对于org.json.simple.JSONObject
我已经编写了一段代码,引用了Eclipse中的JSON库 当尝试导出到Jar文件时,我选择了ExportJava源文件和资源选项 我的代码依赖于JSONObject库 现在我已经打包了我所有的文件,当我在linux机器上运行jar文件时,我得到了错误::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
# 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的;当从命令行执行时,它们不会被读取,这正是我的答案所关注的。