当前位置: 首页 > 知识库问答 >
问题:

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

上官高翰
2023-03-14

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

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.jarbin/com/Company/Main

以上是我一直在努力的工作,因此,如果有任何关于我可能做错了什么的建议,我将不胜感激

整个异常是“错误:无法找到或加载主类main,原因是:java.lang.NoClassDefFoundError:com/company/main(错误名称:main)”

注意,我正在使用windows

共有2个答案

周博达
2023-03-14

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

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

百里诚
2023-03-14

@caius-brindesu是对的,你必须像com.company.Main一样指定类,但是你必须从bin目录中执行这个类。所以,运行“cd bin”,然后你的命令应该可以工作。这是这样的,因为你的PATH以点“.”开头,这意味着在这个目录中。

 类似资料:
  • 我遇到了从命令提示符运行java程序的问题。我有一个名为DataRecover的java文件,还有一个名为Triple的java文件。现在,当我在命令提示符下运行javac triple.java时,它会执行它应该执行的操作。但是,当我运行javac DataRecover.java时,它会出现这样的错误消息:“线程”main“java.lang.noClassDeffounderRror:Dat

  • 当我通过命令行运行此代码时,我得到了一个异常。当我通过Eclipse IDE运行它时,它运行得很好,没有异常。我不知道发生了什么,但它肯定在会话语句中得到了异常。 我得到的错误仅当它在命令行运行时: 你知道这是什么原因吗?

  • 问题内容: 我有一个Java程序,正在使用 mysql* 数据库连接代码。我在Eclipse的资源文件夹中添加了 mysql-connector- java-3.0.10-stable-bin.jar 和 mysql-connector-java-5.0.4-bin.jar 文件。当我在Eclipse中运行程序时,它运行良好。然后,我创建了一个项目的 .jar 文件,其中包含该jar文件中的所有j

  • null 到目前为止,我在cmd中的输入是: d: CD JavaProgram javac snake.java board.java 从这里我该怎么办? 这是指向这2个java文件源代码的链接。http://zetcode.com/tutorials/javagameStutorial/snake/

  • 我是刚到爪哇的。我正在尝试将大型机代码转换为Java。我在命令行下面运行。 我可以知道如何设置res.jar。 命令行代码

  • 本文向大家介绍通过什么命令指定命令提示符?相关面试题,主要包含被问及通过什么命令指定命令提示符?时的应答技巧和注意事项,需要的朋友参考一下 答案: \u:显示当前用户账号 \h:显示当前主机名 \W:只显示当前路径最后一个目录 \w:显示当前绝对路径(当前用户目录会以~代替) $PWD:显示当前全路径 $:显示命令行’$'或者’#'符号 #:下达的第几个命令 \d:代表日期,格式为 week da