MacOS下安装完Java JVM,配置好环境变量后能够在终端执行一个简单的java脚本程序,其中先使用javac编译器将.java文件编译成字节码文件,而后经过java解释器执行字节码文件。html
1 class Demo{ 2 3 public static void main(String[] args){ 4 System.out.println("hello world!"); 5 } 6 7 }
编写完后保存为.java格式,这里使用终端查看:java
使用javac编译完成后,执行完后目标文件夹下会多出来一个Demo.class字节码文件。vim
java命令解释执行后,发现能够正常的输出"hello world",执行OK。spa
如今有个问题,若是我将java文件中类名修改成HelloWorld,会怎样呢,编译会有什么结果,下面在终端下使用vim命令修改了类名以下所示。3d
从新编译,发现目标文件夹下多出了一个HelloWorld.class的字节码文件,原来编译后文件名就是类名,使用java命令能够正常解释。code
若是有不少文件,这样类名和java文件名不一致的状况应该尽可能避免,这样能够添加修饰符public,能够约束java文件名和文件里的类名必须保持一致,不然编译没法经过,以下就提示了建议修改java文件名和类名一致。htm
若是在java文件中定义多个类也是能够的,编译后生成多个class文件。blog
若是在代码中指定了包名,则使用javac -d 编译完成后文件夹存放地 java文件命令来编译,这样会自动生成文件夹嵌套,并将对应的class文件存放到文件夹下。以下图所示在Demo.java文件中添加了包名com.boe.exer,使用命令后就在当前文件目录下生成多级目录,并能够使用javac来执行,可是须要写class文件包名+类名。get
(1)Java执行需先将代码转换成字节码文件,字节码文件被解释器执行解释后变成机器码,机器码才能被计算机识别执行。编译器
(2)编译命令:javac 编译的java文件全名,包括文件类型java。
(3)运行命令:java 要运行的class文件名,通常为一个类对应一个class文件