java - 尝试了各种方法添加 stdlib.jar 后如何修复 IntelliJ Idea 中的 NoClassDefFoundError
问题描述
我在 IntelliJ Idea 2018 中创建了一个简单的 Java 项目,我正在尝试添加stdlib
到我的项目中。
在花了几个小时在线调查之后,我尝试了以下方式:
libs
在文件夹内创建一个文件src
夹,复制并粘贴stdlib.jar
并右键单击它并选择Add as a Library
;- 转到
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>
解决方案
所以,我终于解决了。这就是问题所在:什么都没有。
在搜索网络后,我发现(由于某种原因我无法发布链接)一个建议复制我的代码、删除项目并创建一个新项目的答案。因此,我删除了我的项目,使用相同的代码创建了一个新项目,创建了相同的工件,将其添加stdlib-package.jar
为库并重新构建hospital-simulator.jar
,它立即工作。
我无法解释为什么会这样,因为我不知道。我确实按照相同的顺序做了同样的事情。希望这对某人有所帮助,并感谢所有试图提供帮助的人。
推荐阅读
- opengl - 根据软件渲染器生成的 2D 视觉填充深度缓冲区
- javascript - 如何在 div 上使用“keydown”事件侦听器?
- r - 如何在 R 中的 Mac 或 Windows 环境中将文件写入桌面
- javascript - 为什么触发条件时没有警报?
- groovy - 在 Groovy 中搜索字符并在其后添加字符的最佳方法
- javascript - 设置第二个可选参数 javascript
- ios - [NSNull objectForKey:] 的崩溃原因,但我找不到在哪里
- r - httr: curl::curl_fetch_memory(url, handle = handle) 中的错误:从对等方接收数据时失败
- ios - iOS Swift 如何让 DateFormatter 在任何地区都没有年份?
- java - 为什么更改 jar 的名称会导致 UnsatisfiedLinkError 异常