Java 在eclipse中运行和转到项目文件夹以及使用.jar之间的区别
我试图找到更多关于eclipse如何处理项目运行的信息。 我想进一步了解它,因为我目前遇到一个问题,当项目通过eclipse运行时,包含在项目类路径中的apache poi.jar文件将正常工作,但是在转到同一个项目文件夹并运行主jar文件以启动程序时将不会被检测到 它给了我一个错误:java.lang.NoClassDefFoundError:Java 在eclipse中运行和转到项目文件夹以及使用.jar之间的区别,java,eclipse,Java,Eclipse,我试图找到更多关于eclipse如何处理项目运行的信息。 我想进一步了解它,因为我目前遇到一个问题,当项目通过eclipse运行时,包含在项目类路径中的apache poi.jar文件将正常工作,但是在转到同一个项目文件夹并运行主jar文件以启动程序时将不会被检测到 它给了我一个错误:java.lang.NoClassDefFoundError:org/apache/poi/ss/usermodel/Cell(虽然有时不是Cell,而是Sheet) 我可以参考什么来了解这里发生的情况,并可能解决
org/apache/poi/ss/usermodel/Cell
(虽然有时不是Cell,而是Sheet)
我可以参考什么来了解这里发生的情况,并可能解决此问题?您的
NoClassDefFoundError
表明运行jar时库不可用
这取决于将项目导出到jar文件的方式
如果您正在使用eclipse进行此操作,您可以:
Export->Java->Runnable Jar
创建包含依赖项的Jar
确保选中将所需库打包到生成的JAR中
这将使所有jar(包括ApachePOI.jar在内的构建路径)成为最终jar的一部分
它从eclipse运行,因为库位于eclipse的构建路径上,这使得它们可以在类路径中使用。你是什么意思?通过命令行调用java?命令行对项目结构或类路径设置一无所知。除非您以某种方式设置了类路径。我不太确定eclipse的细节,但我假设您的ApachePOI依赖项没有包含在输出jar中。如果您使用的是maven,我建议您查看shade插件,否则eclipse可能会设置在您的工件中包含依赖项。在任何情况下,我们都无法帮助您处理这些不完整的信息。请阅读并加强您的问题。可能的副本