首页 > 解决方案 > 尝试了各种方法添加 stdlib.jar 后如何修复 IntelliJ Idea 中的 NoClassDefFoundError

问题描述

我在 IntelliJ Idea 2018 中创建了一个简单的 Java 项目,我正在尝试添加stdlib到我的项目中。

在花了几个小时在线调查之后,我尝试了以下方式:

  1. libs在文件夹内创建一个文件src夹,复制并粘贴stdlib.jar并右键单击它并选择Add as a Library
  2. 转到Project Structure -> Modules -> Dependencies -> + JARs or directories并选择 stdlib.jar

我发现人们抱怨这样做,但 IntelliJ 并没有建议导入需要使用StdOut,例如。但是,当我添加stdlib.jar文件并将其打包时,IntelliJ 会立即建议我应该使用的导入,并且没有任何错误。

尽管如此,当我尝试运行该项目时,它总是会运行到NoClassDefFoundError.

我花了几个小时研究这个,尝试不同的方法来添加库并导入它,但结果总是一样的。

我附上了一个打印屏幕,显示了我当前的项目结构、导入和stdlib.jar.

真的希望你们能帮助我。谢谢!

下载链接stdlib-package.jar- https://introcs.cs.princeton.edu/java/stdlib/stdlib-package.jar

清单文件

Manifest-Version: 1.0 
Main-Class: com.edgelab.hospital.Application

HOSPITAL_SIMULATOR_JAR.xml

<component name="ArtifactManager">
  <artifact type="jar" name="hospital-simulator:jar">
    <output-path>$PROJECT_DIR$</output-path>
    <root id="archive" name="hospital-simulator.jar">
      <element id="module-output" name="HospitalSimulator" />
    </root>
  </artifact>
</component>

标准库包.xml

<component name="libraryTable">
  <library name="stdlib-package">
    <CLASSES>
      <root url="jar://$PROJECT_DIR$/../stdlib-package.jar!/" />
    </CLASSES>
    <JAVADOC />
    <SOURCES>
      <root url="jar://$PROJECT_DIR$/../stdlib-package.jar!/" />
    </SOURCES>
  </library>
</component>

标签: javaintellij-ideadependencieslibrariesnoclassdeffounderror

解决方案


所以,我终于解决了。这就是问题所在:什么都没有。

在搜索网络后,我发现(由于某种原因我无法发布链接)一个建议复制我的代码、删除项目并创建一个新项目的答案。因此,我删除了我的项目,使用相同的代码创建了一个新项目,创建了相同的工件,将其添加stdlib-package.jar为库并重新构建hospital-simulator.jar,它立即工作。

我无法解释为什么会这样,因为我不知道。我确实按照相同的顺序做了同样的事情。希望这对某人有所帮助,并感谢所有试图提供帮助的人。


推荐阅读