繁体   English   中英

通过命令提示符运行java类时的NoClassDefFoundError

[英]NoClassDefFoundError when running a java class through the command prompt

我刚刚使用IntelliJ完成了一个很大的项目,并说我会为没有IDE的人提供命令行语句来运行它(项目将由不同的人在不同的机器上运行等)。 我有一段时间没有使用命令行,所以我有点生疏了。 我得到了一个N​​oClassDefFoundError:错误的名字,我一直在寻找关于S / O的问题,例如为什么我在Java中得到NoClassDefFoundError? 但这些似乎并没有解决我的问题。 我正在使用相当多的外部库,但我在尝试运行时正确导入了它们。 编译了很多类,但只运行一个,所以我假设我只在Main类上运行“java”命令

java -cp .; poi-3.17 / lib / comms-codec-1.10.jar; poi-3.17 / lib / commons-collections4-4.1.jar; poi-3.17 / lib / commons-logging-1.2.jar; poi-3.17 /lib/junit-4.12.jar;poi-3.17/lib/log4j-1.2.17.jar;poi-3.17/ooxml-lib/curvesapi-1.04.jar;poi-3.17/ooxml-lib/xmlbeans-2.6.0 .jar; poi-3.17 / poi-3.17.jar; poi-3.17 / poi-ooxml-3.17.jar bin / com / company / Main

以上就是我一直努力工作的事情,所以对我可能做错的任何建议都会表示赞赏

整个异常是“错误:无法找到或加载主类主要由以下引起:java.lang.NoClassDefFoundError:com / company / Main(错误名称:Main)”

注意,我正在使用Windows

@凯斯- brindescu是正确的,你必须指定一个像com.company.Main类,而且,你必须从bin目录执行的类。 所以,运行'cd bin'然后你的命令,它应该工作。 这是这样的,因为你的PATH以点''开头。 这意味着在这个目录中

首先, -cp参数的jar文件的分隔符是冒号(:),而不是分号(;)。 使用分号将更改参数的解析方式。

此外,运行主类时,必须指定完全限定名称(com.company.Main),而不是类文件的路径。 将从-cp参数解析类文件。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM