【问题标题】:NoClassDefFoundError when running program运行程序时出现 NoClassDefFoundError
【发布时间】:2013-04-26 22:46:33
【问题描述】:

我有一个问题,我知道在这里被问了很多,但是我之前找到的所有帖子(我已经找到了很多)都不适合我。

我有一个已上传到服务器的基本 Java 程序。当我通过 SSH 登录服务器时,.java 文件位于我的主目录中。我在服务器上编译,确认生成了.class文件。

但是当我尝试使用

运行程序时
java <program name>

它给了我错误。

我尝试了什么?

  • 创建一个包含两个文件的子目录
  • 使用包名(即 java packagename.programname)调用程序
  • 从服务器上编译它,然后在两者上传输
  • 使用 -cp 显式设置类路径

真正奇怪的是,我采用了另一个程序,并且能够毫无问题地编译和运行它,即使它本质上是同一个程序(我复制并粘贴了一部分到我的程序中)。

如果需要,我可以在此处包含部分代码,但需要确切告知我需要哪些部分,因为有很多行。

【问题讨论】:

  • 大多数时候 NoClassDefErrors 是由于类路径问题,似乎所需的类/jar 文件不在路径中。
  • 我认为将.java 文件保存在服务器上并不是一个好主意。为什么不.jar
  • 当我之前尝试 .jar 时,程序会运行,但不能正确执行部分。所以这就是为什么我只在服务器上执行 java 文件。我不知道为什么不存在所需的类文件。它们是在我运行 javac 时生成的,所以除非它不能正常工作,否则我认为不是这样。
  • 我要做的是创建一个尽可能简单的示例来重现此问题,然后让我们查看您用来运行它的代码和命令。
  • 谢谢,伙计们。我想我现在只使用.jar 方式。这意味着另一个问题......

标签: java compilation noclassdeffounderror


【解决方案1】:

当您遇到类路径问题或类/jar 文件版本不一致时,请尝试使用JWhich

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-06-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-28
    相关资源
    最近更新 更多