Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/eclipse/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 尝试使用Eclipse编译Hello World时出现的问题_Java_Eclipse - Fatal编程技术网

Java 尝试使用Eclipse编译Hello World时出现的问题

Java 尝试使用Eclipse编译Hello World时出现的问题,java,eclipse,Java,Eclipse,我在尝试编译以下代码时遇到问题: 我首先尝试使用以下代码进行编译: class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World!"); // Display the string. } } 这是它应该做的。现在,如果我尝试用任何其他名称替换类名,它将不再起作用,因为它似乎总是在关注HelloWorldApp。我确保文件被保存,因此,

我在尝试编译以下代码时遇到问题:

我首先尝试使用以下代码进行编译:

class HelloWorldApp {
    public static void main(String[] args) {
        System.out.println("Hello World!"); // Display the string.
    }
}
这是它应该做的。现在,如果我尝试用任何其他名称替换类名,它将不再起作用,因为它似乎总是在关注HelloWorldApp。我确保文件被保存,因此,我甚至重新打开了Eclipse。还是一样的错误。也许这是一个常见的问题,有一个小的解决办法

谢谢



编辑:我明白你们的意思,但当我的文件名为“Main.java”和类名为“HelloWorldApp”时,为什么它会起作用呢?

您需要重命名.java文件以匹配类名


如果您使用其重构支持,Eclipse将自动重命名.java文件以匹配您的类名。右键单击类名,将鼠标悬停在重构上,然后选择重命名选项。现在,当您重命名类时,Eclipse将自动重命名您的.java文件以匹配。

这就是java的工作方式。类必须与文件具有相同的名称。因此类MyApp的文件名必须是MyApp.java

将main重命名为HelloWorldApp,这样你的应用程序就变成HelloWorldApp.java。

当更改类的名称时,请使用重构选项-如果你试图自己手动编辑名称,Eclipse项目将无法跟踪你的对象。

我明白你的意思,但是如果我保留当前的文件名(Main.java),它将使用HelloWorldApp!的类名!。。。或者在sourcecode中选择类名(或者只是将光标放在其中),然后点击
Alt+Shift+R
。不过,这只是公共类所必需的。包私有类(未标记为public或private)可以命名为任何名称。@mmyers-你说得对,没有注意到它是默认作用域。Javac从HellowWorldApp.java生成FooBar.class应该没有问题。我不知道为什么它不起作用;我可以随意更改(默认范围)类名,它们在STS2.3.0中运行良好。我认为这不是问题所在。查看右角,您将看到它正在正确更新我的类大纲。查看选项卡文档-它的内容是“Main.java”,如果您正确使用了重构,它的内容应该是“HelloWfor.java”