在一个Java程序中,你总能找到一个类似:
public class Test01 {
...
}
的定义,这个定义被称为class(类),这里的类名是Test01,大小写敏感,class
用来定义一个类,public
表示这个类是公开的,public
、class
都是Java的关键字,必须小写,Test01是类的名字,按照习惯,首字母T要大写。而花括号{}
中间则是类的定义。一个Java源码只能定义一个public类型的class,并且class名称和文件名要完全一致。
注意到类的定义中,我们定义了一个名为main
的方法:
public static void main(String[] args) {
...
}
方法是可执行的代码块,一个方法除了方法名main
,还有用()
括起来的方法参数,这里的main
方法有一个参数,参数类型是String[]
,参数名是args
,public
、static
用来修饰方法,这里表示它是一个公开的静态方法,void
是方法的返回类型,而花括号{}
中间的就是方法的代码。
方法的代码每一行用;
结束,这里只有一行代码,就是:
System.out.println("Hello, world!");
它用来打印一个字符串到屏幕上。
Java规定,某个类定义的public static void main(String[] args)
是Java程序的固定入口方法,因此,Java程序总是从main
方法开始执行。
注意到Java源码的缩进不是必须的,但是用缩进后,格式好看,很容易看出代码块的开始和结束,缩进一般是4个空格或者一个tab。
执行Java脚本
Test01.java源码本质上是一个文本文件,我们需要先用javac
把 Test01.java编译成字节码文件 Test01.class
,然后,用java
命令执行这个字节码文件。
报错原因:我的源码里多了一行package lovetest;
且 文件实际路径
D:\MC\IdeaProjects\javatest\src\lovetest\Test01.java
路径中包含包名,我是把Test01.java文件复制到现在的路径D:\test,导致不对
参考:使用cmd命令运行class文件提示“错误:找不到或无法加载主类“_兜里ヌ有糖的博客-优快云博客
第一步,在保存Hello.java
的目录下执行命令javac Test01.java
:
$ javac Test01.java
如果源代码无误,上述命令不会有任何输出,而当前目录下会产生一个Test01.class
文件:
第二步,执行Test01.class
,使用命令java Test01
:
注意:给虚拟机传递的参数Test01
是我们定义的类名,虚拟机自动查找对应的class文件并执行。
小结
一个Java源码只能定义一个public类型的class,并且class名称和文件名要完全一致;
使用javac可以将.java源码编译成.class字节码;
使用java可以运行一个已编译的Java程序,参数是类名。