2010-03-02 57 views
0
试图编译下面的代码,当我遇到问题时

问题尝试编译的Hello World与Eclipse

alt text http://img641.imageshack.us/img641/5217/semttulore.png

我第一次尝试使用此代码编译:

class HelloWorldApp { 
    public static void main(String[] args) { 
     System.out.println("Hello World!"); // Display the string. 
    } 
} 

它的工作原理应该如此。现在,如果我尝试替换任何其他名称的类名称,它将不再工作,因为它似乎总是照看HelloWorldApp。我确定该文件正在保存,所以我甚至重新打开了Eclipse。还是一样的错误。也许这是一个普遍的问题,只是一个小小的解决办法?

感谢


编辑:我明白你们的意思,但为什么当我有文件名为“Main.java”和“HelloWorldApp的”的类名工作?

回答

6

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

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

+0

...或者在源代码中选择类名(或者只是将光标放在其中),然后点击“Alt + Shift + R”。 – BalusC 2010-03-02 19:48:48

+0

虽然这只是公共课程所必需的。包私有类(未标记为公共或私有)可以命名为任何东西。 – 2010-03-02 19:54:16

+0

@mmyers - 你是对的,没有注意到它是默认的作用域。 Javac从* HellowWorldApp.java *生成* FooBar.class *应该没有问题。我不确定为什么它不起作用;我可以随意更改(默认范围)的类名,并且它们在STS 2.3.0中运行良好。 – rcampbell 2010-03-02 20:09:47

2

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

1

将main重命名为HelloWorldApp,以便您的应用程序变为HelloWorldApp.java。

+0

我明白了你的观点,但如果我保留当前文件名(Main.java),它将与类名HelloWorldApp一起使用! – 2010-03-02 19:48:28

0

更改类的名称时,使用REFACTOR选项 - 如果您尝试自己手动编辑名称,那么Eclipse项目会丢失跟踪对象。

+0

我不认为这是问题。看看右下角,你会发现它正在更新我的班级轮廓。 – 2010-03-02 19:51:54

+0

您是否已经正确设置了Java的CLASSPATH? – MikeC 2010-03-02 19:55:17

+0

不知道:S .. – 2010-03-02 19:59:22

相关问题