首先我们来写一个简单的JavaTest方法,大致如下:
package com.cuiyongzhi.io;
public class JavaTest {
public static void main(String[] args) {
// TODO Auto-generated method stub
int i=0,j=1;
int n=i+j;
System.out.println("n================"+n);
}
}
然后将我们的这个JavaTest.java放入到c盘根目录下,后面我们用javac、java、javap进一步的去了解和运行这个方法的执行步骤!
①javac——负责.java文件的编译
首先当我们在cmd中输入javac的时候我们可以看到很多的提示信息如下,但是我这里说的只是对.java文件的编译命令!
javac对.java文件的编译命令格式如下:
javac -d destdir srcFile
-
-d destdir是用来指定存放编译生成的.class文件的路径。(若此选项省略,那么默认在当前目录下生成.class文件,并且没有生成包文件夹;当前目录可以用“.”来表示,即:javac -d . srcFile;添加-d选项除了可以指定编译生成的.class文件的路径外,最大的区别是可以将源文件首行的package关键字下的包名在当前路径下生成文件夹)
-
srcFile是源文件.java文件的路径
之前我们是将JavaTest.java放在c盘根目录下,而且我也希望我们生成的class文件也是放入在C盘中,所以我们的编译命令可以如下:
javac -d C:\\ C:\\JavaTest.java
最后执行之后我们可以看到如下结果:
②前面第一步我们已经通过javac编译过java文件了,并且编译之后class的目录在C:\com\cuiyongzhi\io,在这里我们可以通过java运行class结果如下:
③javap——可以用于帮助开发者深入了解Java编译器的机制
-
-c 分解方法代码,即显示每个方法具体的字节码
-
-public | protected | package | private 用于指定显示哪种级别的类成员
-
-verbose 指定显示更进一步的详细信息
我们可以查看我们这个编译的Class的相关信息,只需要输入如下命令:
javap -c com/cuiyongzhi/io/JavaTest
我们可以看到编译过的被线程一步步调用的指令 如下图:
简单的对javac、java、javap的命令讲解就到这里