Java Eclipse外部库

Java Eclipse外部库,java,eclipse,Java,Eclipse,我目前在Eclipse中使用外部库时遇到问题。每当我试图启动程序时,它都会抛出NoClassDefFound异常。我显然做错了什么。有人能再给我解释一下如何将它们正确地纳入你的项目中吗?(是的,我已经在这方面做了很多研究,并被推荐使用Maven依赖项,这是我不想要的。此外,我还发现了一些与我的问题更相关的线程,但没有任何帮助。因此,是的,如果有人能解释具体的操作方法,我将不胜感激。) 我正在使用最新版本的eclipse和Java8(通常是13,但这并没有修复我的错误)。它只在运行时抛出异常,因此

我目前在Eclipse中使用外部库时遇到问题。每当我试图启动程序时,它都会抛出NoClassDefFound异常。我显然做错了什么。有人能再给我解释一下如何将它们正确地纳入你的项目中吗?(是的,我已经在这方面做了很多研究,并被推荐使用Maven依赖项,这是我不想要的。此外,我还发现了一些与我的问题更相关的线程,但没有任何帮助。因此,是的,如果有人能解释具体的操作方法,我将不胜感激。)

我正在使用最新版本的eclipse和Java8(通常是13,但这并没有修复我的错误)。它只在运行时抛出异常,因此编译时不会出现任何错误

项目设置:

清单文件:

Manifest-Version: 1.0
Main-Class: me.sxlver.consoleclient.Main
Class-Path: lib/java-json.jar lib/snakeyaml-1.26.jar
例外情况:

Exception in thread "main" java.lang.NoClassDefFoundError: org/json/JSONObject
        at me.sxlver.consoleclient.Main.main(Main.java:20)
Caused by: java.lang.ClassNotFoundException: org.json.JSONObject
        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)
(我正在创建一个JSONObject实例)

Java构建路径:


库:

我怀疑这是由于生成路径设置不正确造成的。我通常做的是:

  • 转到窗口->首选项->Java->构建路径->用户库->新建库->添加jar(您的库文件)
  • 右键单击项目->构建路径->添加库->添加用户库->完成
  • 从运行菜单中,选择运行配置

    选择Dependencies选项卡,然后单击AddExternalJAR按钮


    将出现一个文件选择器窗口。导航到相关JAR的位置并选择它。

    在屏幕截图中,请展开Referenced Libraries>java-json.JAR,以显示您拥有包含
    org.json.JSONObject
    的正确JAR。请将命令行添加到您的问题中(在运行配置中有一个按钮显示命令行)。在这一点上,我认为运行配置是问题所在,因为我没有在那里更改任何内容。你能解释一下我该怎么做吗?上面的东西看起来不错。如果删除启动配置并右键单击RunAs>Java应用程序没有帮助,请显示命令行(请参阅我最后的注释如何获取命令行)。我怀疑目前的问题是运行配置。还没有使用过运行配置。必须弄清楚如何正确地使用它。为了确定,您是否也可以发布Java构建路径(库)的屏幕截图?另外,扩展该页面中的所有组件。它们包含JSONObject。由于错误的设置,代码编译时出现了一些问题。对我来说是这样的:@Sxlver单击用户条目以启用按钮Add External JARsWell,当我试图在eclipse中运行它时,它会工作(我想以前已经工作过了)问题是从eclipse导出时会抛出异常。@Sxlver这是一个完全不同的问题。它与正在导出的JAR文件清单中的类路径头有关。我建议你问一个新问题。您正在Eclipse中创建一个JAR文件,当您运行JAR文件时,会得到
    NoClassDefFoundError
    。因此,您想知道如何在Eclipse中导出JAR文件,以便在运行时可以访问外部JAR。提到我的道歉,我想我会在我的问题中提到这一点。我将创建一个新的,谢谢。