我意识到这可能是一个非常简单的问题,但是我已经连续数天对其进行了研究,但无济于事。任何帮助将不胜感激。
我的项目结构如下:
src
|--Main.java
|--WebScrapper.java
out
|--Main.class
|--WebScrapper.java
lib
|--Jsoup
我的WebScrapper.java文件导入Jsoup库实用程序,如下所示:
import java.io.IOException;
import org.jsoup.Jsoup;
import org.jsoup.nodes.Document;
import org.jsoup.select.Elements;
import org.jsoup.nodes.Element;
我在InteliJ IDE的项目中正在使用Java库。在IDE中,我转到“项目结构->模块->添加jar或目录”,然后通过选择IntelliJ中的“运行”按钮来运行我的程序,但是当我编译Java代码并尝试使用“ java”运行它时来自终端的Main.class”,出现以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/jsoup/Jsoup
at WebScrapper.returnPage(WebScrapper.java:12)
at Main.main(Main.java:19)
Caused by: java.lang.ClassNotFoundException: org.jsoup.Jsoup
at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(Unknown Source)
at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(Unknown Source)
at java.base/java.lang.ClassLoader.loadClass(Unknown Source)
... 2 more
我知道这是库的问题,而不是我的其他类文件的问题,因为当我将其他类文件更改为简单的System.out.printl语句时,它可以很好地工作。我如何在项目中使用这种依赖关系?我需要创建一个lib文件夹并执行某些操作吗?或者是别的什么?我浏览了有关堆栈溢出的许多其他问题,并看到了诸如清理构建,使用诸如maven之类的依赖管理插件等解决方案。但是,重建项目无法正常进行,如果可能,我想避免使用依赖管理系统,但是,如果需要,我会这样做。
谢谢,迈克尔
答案 0 :(得分:0)
在运行课程时,您必须将库添加到课程路径中;这是通过使用例如-cp path-to-jsoup.jar
。
如果有更多的jar文件,则必须通过在Windows中用;
和在Linux中用:
分开列出所有文件。
最好在IntelliJ终端面板中运行上层类时,找出IntelliJ所使用的命令,以便更好地了解您编写它的类似方式。