如何在尝试各种方式添加stdlib.jar后修复IntelliJ Idea中的NoClassDefFoundError

问题描述 投票:1回答:1

我在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.MF

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>

STDLIB-package.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>

java intellij-idea dependencies libraries noclassdeffounderror
1个回答
0
投票

所以,我终于解决了它。这是错的:什么都没有。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.