【简单易懂】Java编译Class文件的运行原理及环境变量配置

1.1 Java程序介绍

 

在开始案例之前,我们需要了解一下Java应用程序的编写流程。

通过上图我们可以了解到编写的程序大致如下;

1. 源文件:编写Java源文件(我们也称之为源代码文件),它的扩展名为.java

2. 编译:然后通过编译器把源文件编译成字节码文件,字节码文件扩展名为.class

3. 运行:最后使用解释器来运行字节码文件。

 

编译和运行操作需要使用DOS命令,所以在编写源代码文件之后,我们要学习常用DOS命令,再去学习编译和运行。

1.2 源代码编写

1.2.1 创建HelloWorld.java文件

Java源代码编写只需要使用最普通的文本编辑器编写即可,例如Windows系统自带的notepad即可。如果你不知道什么是notepad,那么你可以在空白处点击鼠标右键à新建à文本文档来创建文本文件。

 

然后修改文件名称为HelloWorld.java,注意文件名称的大小写。以及是否已经修改了文件的扩展名。

 

如果看不到文件后缀名,可通过窗口上方“查看”菜单中的“文件夹选择”找到“查看”选项卡,在“查看选择卡”的高级设置找到“隐藏已知文件类型的扩展名”选项,去掉前面的勾,点击“确定”即可显示文件后缀名了。如下图


 

1.2.2 编写源程序代码

下面是完整的内容:

HelloWorld.java

public class HelloWorld {

public static void main(String[] args) {

System.out.println("HelloWorld");

}

}

注意,大家在编写源代码时一定要注意大小写。总而言之,一模一样就对了。

下面我们对源代码进行解析,HelloWorld案例的源代码一共分为三个部分,分别是:主方法,以及输出语句

  类是最外层的部分,其中public class是必须要写的命令,其中HelloWorld是类名称,要求必须与源文件名称相同。因为我们的源文件名称为HelloWorld.java,所以类名称必须是HelloWorld。类有一对大括号,类的内容存放在这对大括号中。你可能会问什么是类,我的答案是先不要去管什么是类,现在你需要记下来下面的代码,即定义类的语法。

public class HelloWorld {

}

主方法是类的内容,所以主方法放到类的大括号中。现在我们不需要了解更多,只需要把主方法的内容背下来即可。主方法也有一对大括号,用来存放主方法的内容。

public static void main(String[] args) {

}

 

输出语句是主方法的内容,所以输出语句需要放到主方法的大括号中。输出语句也需要背下来。输出语句最后有一对圆括号,在圆括号中有一语话用双引号括起来:Hello World!。在程序运行时会输出它。

System.out.println("HelloWorld!");

  

到这里我们的源代码就已经编写完毕了,还要再次提醒大家编写源代码时要注意大小写。文件名称和文件内容都要注意大小写。

 

1.3 编译源代码文件

学习完DOS命令后我们就可以来学习编译源代码文件了。编译操作需要使用编译器来完成,在安装JDK时已经安装了编译器,它属于JDK的一部分。可以到JDK目录下的bin目录下找到它,它的名称为:javac.exe


 

注意,javac.exe并不支持双击运行,所以必须使用DOS命令来运行它。

下面我们来介绍一下使用编译器来编译Java源文件的格式:

格式:编译器程序完整名称 源文件完整名称

 

让我们来分析一下:

我的JDK安装在D:\develop\Java\jdk1.7.0_72目录,那么编译器完整名称为:D:\develop\Java\jdk1.7.0_72\bin\javac.exe

我的源文件存放在:D:\java\HelloWorld.java

编译命令为:D:\develop\Java\jdk1.7.0_72\bin\javac.exe D:\java\HelloWorld.java

 

编译之后会在源文件同目录下生成字节码文件,字节码文件的扩展名为.class

 

请注意,在编译时控制台上不会有输出,如果有输出说明源代码有错误,所以大家一旦编译出错,就要去查看源文件中是否存在错误。

 

1.4 运行字节码文件

运行字节码文件需要使用java.exe命令,它与javac.exe在同一目录下。与javac.exe相同,java.exe也不支持双击运行,所以也必须要使用DOS命令来运行。运行字节码文件与编译有点区别:

进行字节码文件所在目录:即进入D:\java目录;

l D:\develop\Java\jdk1.7.0_72\bin\java.exe HelloWord

注意,在运行HelloWorld.class文件时不能给出“.class”,切记!!!

 

1.5 HelloWorld案例常见问题

A:找不到文件

 a:文件扩展名隐藏导致编译失败

 b:文件名写错了

B:单词拼写问题

 a:class写成Class

 b:String写成string

 c:System写成system

 d:main写成mian

C:括号匹配问题

 a:把类体的那对大括号弄掉一个

 b:把方法体的那对大括号弄掉一个

 c:把输出语句的那对小括号弄掉一个

 

 

1.6 简化编译和运行操作

我们发现每次程序编译与运行都要输入D:\develop\Java\jdk1.7.0_72\bin后,才能使用javac.exejava.exe,这样的方式很麻烦,那么,能否不输入D:\develop\Java\jdk1.7.0_72\bin呢?是可以的,通过配置WindowsPATH环境变量来完成。

PATH变量中保存着多个路径,当我们在DOS控制台中使用的程序只给出程序名称,而没有给出完整路径时,那么Windows系统会到PATH变量保存的路径中去查找程序。我们如果把“D:\develop\Java\jdk1.7.0_72\bin”路径保存到PATH变量中,那么在我们使用javacjava时,Windows系统就会自动到“D:\develop\Java\jdk1.7.0_72\bin”路径下查找javacjava了。

l 配置步骤:

鼠标右键点击计算机  →  属性  →  高级系统设置  →  点击环境变量  →  找到系统变量中的PATH  →  点击编辑按钮。

 

JDK安装目录\bin路径(我的电脑上的D:\develop\Java\jdk1.7.0_72\bin)配置到PATH变量中,用英文分号与其他变量隔开。

 


注意:配置PATH后文件的访问顺序:先访问当前路径,如果当前路径没有该文件,则再访问PATH配置的路径。

接下来我们测试一下:

把原有的HelloWorld.class删除;

进入HelloWorld.java所在目录:

切换盘符到E盘:C:/>D:

进入java目录:D:/>cd java

编译:D:/java/>javac HelloWorld.java

运行:D:/java/>java HelloWorld

 

 

第二种配置方式:

   1.首先在环境变量中点击新建按钮

  

  2.然后在变量名和值写入:

 

注意变量值自己安装的JDK目录,不包含bin目录

 3.最后我们将Java_Home配置到path

 

 

%Java_Home%,相当于取出Java_Home中的值,我们之前配置的D:\DevelopTools\jdk7u40_64bit

然后组合\bin,其实D:\DevelopTools\jdk7u40_64bit\bin,就是推荐这种配置方式,因为后期很多java软件都会用到这个配置


猜你喜欢

转载自blog.csdn.net/zxwu_1993/article/details/80038800