【问题标题】:Java.lang.NoClassDefFoundError in command prompt run [duplicate]命令提示符运行中的 Java.lang.NoClassDefFoundError [重复]
【发布时间】:2020-10-19 04:33:03
【问题描述】:

我正在尝试在命令提示符下运行我的代码,但它给了我错误..有人知道它有什么问题吗?

错误:无法找到或加载主类你好 原因:java.lang.NoClassDefFoundError: FirstQuarter/hello (错误名称:hello)

【问题讨论】:

标签: java command-prompt


【解决方案1】:

这种类型的错误是由于在运行期间在类路径中找不到该类,但在编译期间找到了该类。 寻找打印

System.getproperty("java.classpath")

它将打印类路径,以便您了解实际的运行时类路径。

此外,请确保将类的完全限定名称传递给“java”命令,该命令包含要执行的主要方法。

directory_that_holds_package>java package_name.Class_name

【讨论】:

  • 添加包名后出现新错误。无法找到或加载主类 FirstQuarter.hello 原因:java.lang.ClassNotFoundException: FirstQuarter.hello
  • @AisaHassan 请显示完整的错误日志。可能是您从错误的目录运行命令。
  • D:\xen>java FirstQuarter.hello 错误:无法找到或加载主类 FirstQuarter.hello 原因:java.lang.ClassNotFoundException: FirstQuarter.hello
  • @AisaHassan 您从 xen 运行它,但我看到您也在 xen 中编译。通常,您在包中编译,然后进入包含包的目录并运行完全限定名称:java package_name.class_name
  • D:\xen\test1\src\FirstQuarter>java FirstQuarter.hello 错误:无法找到或加载主类 FirstQuarter.hello 原因:java.lang.ClassNotFoundException:FirstQuarter.hello
【解决方案2】:

此错误主要是由于程序无法访问您在程序中定义的类,可能是由于您没有定义正确的类路径或您没有包含所需的库运行该课程。原因可能很多。

因此请尝试在任何 IDE 上运行您的代码,因为您将能够轻松识别错误。

【讨论】:

    【解决方案3】:

    首先,我猜测你的程序可以在 Eclipse 和 Idea 中顺利运行,但是它在命令行中给出了这个错误。

    现在,您应该在命令行中包含程序的package。如果你的程序是这样的:

    package firstprogram;
    
    public class HelloWorld { 
      public static void main(String args[]) { 
        System.out.println("Hello World"); 
      } 
    }
    

    那么你应该在 FirstQuarter 文件夹中运行java firstprogram.HelloWorld

    【讨论】:

    • 现在它给了我错误:无法找到或加载主类 FirstQuarter.hello 原因:java.lang.ClassNotFoundException: FirstQuarter.hello
    • 你的文件 hello 应该放在 FirstQuarter 文件夹下。 (虽然这不是问题,但最好遵循命名约定,以便每个人都能理解什么是什么。包名应该是小写,类名应该是 PascalCase)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2023-03-07
    • 1970-01-01
    • 1970-01-01
    • 2010-11-30
    • 2014-02-04
    相关资源
    最近更新 更多