问题描述:在cmd中使用命令java hellojava.java时,提示“类 helloworld 是公共的, 应在名为 helloworld.java 的文件中声明”。
文件名:F:\ProgramStuday\Java\HelloJava\hellojava.java
内容:
public class helloworld
{
public static void main(String[] args)
{
System.out.println("hello java!");
}
}
作为一名.net 程序员,突然之间因为要参与一个JAVA项目,开始突击JAVA,装好JDK理所当然的弄个helloworld来试下。一直听闻JAVA和C#很像,建了个记事本就开干,然后就被搞懵了,一开始没有注意那句中文,只留意了下面有个
public class helloworld
^
然后百度一下才发现也有人像我这样的,原来是
一个java源文件可以包含多个class,但是只能包含一个public 的class,而且这个public class的类名要与这个.java的文件名一致。一个.java文件可以包含多个class,在编译的时候,编译器会为每一个class生成相应的class文件。
也就是我的public 类名和文件名不一样,所以把helloworld改成hellojava 就顺利编译了。
运行的时候,java hellojava就行,不用加.class,否则就会报错:找不到或无法加载主类 hellojava.class
经验:
原理性的知识不可忽视,需要在实践中不断理解,达到融会贯通;
做什么事情都要认真,很多错误都是不认真造成的。