Java Can';t加载主类

Java Can';t加载主类,java,Java,这是一个简单的类,我是Java的初学者 我不知道为什么这段代码没有运行,为什么会出现错误: 无法找到或加载主类 class tuto{ public static void main(String[] args){ System.out.println("Hello World"); } } 在您的代码中有一个编译错误,这是因为Syteme将其更改为System Syteme.out.println("Hello World"); 应该是

这是一个简单的类,我是Java的初学者

我不知道为什么这段代码没有运行,为什么会出现错误:
无法找到或加载主类

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

在您的代码中有一个编译错误,这是因为Syteme将其更改为
System

Syteme.out.println("Hello World");
应该是

 System.out.println("Hello World");
附言 在Java中,当文件中有一个公共类时,文件名必须是该类名。这是必须的。否则您将得到一个错误

如果包中有此类,则必须首先指定包声明

e、 g


System.out.println
Syteme.out.println

在Java中(正如有人已经指出的那样),文件名应该与同一文件中的
主类的
同名


此外,您还应该使用以下语法声明一个数组
array\u type[]array\u id
,而不是
array\u type array\u id[]

当我看到您的问题时,有几件事让我大吃一惊

首先,您有未解决的编译器错误。如果在“问题”选项卡上看到红色的“x”,则应在尝试运行任何操作之前修复所有错误

第二件事是类名与定义它的文件名不匹配。对于公共类,类的名称和文件的名称必须匹配,虽然您的类不是公共的,但这是一个被广泛采用的Java约定,如果您不遵循它,您会让人感到困惑

至于您的实际问题,我最好的猜测是您已经将类放入了一个包中,而没有在源代码中声明它。如果你去查看“问题”选项卡,它会告诉你哪里出了问题,以及(通常)如何解决问题

如果我执行以下操作,我可以估计您的错误消息:

在本例中,我在Problems选项卡中有一个错误,它抱怨声明的包。 检查是否有类似的内容:

如果您这样做,您可以右键单击错误消息并选择“QuickFix”,eclipse将弹出一个对话框,为您添加包声明:


可能有几个问题:

  • 如果类在包中,请确保指定它。例如:
    package com.pak

  • 具有main方法的类始终需要是公共的<代码>公共类{}

  • SystemI中的change Syteme修复了发布代码中的打字错误,因为它不在屏幕截图中,并且错误消息与类名和文件名冲突有关。这不是一个代码语法错误。你能描述一下你是如何运行这段代码的吗?另外,当您将光标悬停在第1行附近的红色
    x
    上时,您会得到什么样的信息?检查文件是否在一个包中。如果您查看屏幕截图,它是
    System
    而不是
    Systme
    ,OP在发布它时只是键入了代码。您在包中有这个类吗?如果是这样的话,你必须有包裹declaration@ThusithaThilinaDayaratne你说得对,我在第页写这封信的时候没有把它加到我的错误中。看这张图片,但他没有上公共课。因此这不是必须的。@Thusitathilinadayaratne很好,我没有注意到。我已经对我的答案进行了修改,我把它改成了同一个类,但它不起作用。我告诉你:未解决的编译problem@H-BooTz.exe转到“问题”选项卡,查看其中的内容,并更新您的问题以显示错误消息。编译器会准确地告诉您出了什么问题,但在您向我们显示错误消息之前,我们只是猜测。此规则仅适用于公共类。问题中的类不是公共类。但如果我们不指定它是
    公共类
    私有类
    类,它默认情况下不应该是公共类吗?不,有四个可见性修饰符:
    公共类
    受保护类
    ,默认(也称为包可见性-当您不指定任何可见性修饰符时),和
    private
    。类(外部类,如OP屏幕截图中的类,而不是内部/嵌套类)只能有
    public
    或默认修饰符。没问题。既然我们同意这个答案不能解决OP问题,就考虑删除它。否则你就有可能被否决。
    package abc;