Java程序的运行必须经过编撰、编译和运行3个步骤。
编撰:是指在Java开发环境中进行程序代码的输入,最终产生后缀名为.java的Java源文件。编译:是指使用Java编译器对源文件进行错误排査的过程,编译后将生成后缀名为.class的字节码文件,不像C语言那样生成可执行文件。运行:是指使用Java类库将字节码文件翻译成机器代码,执行并显示结果。
Java程序运行流程如图1所示。
图1Java程序运行流程
字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码。它是一种二补码文件,是Java源文件由Java编译器编译后生成的目标代码文件。编程人员和计算机都难以直接看懂字节码文件长春linux培训,它必须由专用的Java类库来解释执行,因而Java是一种在编译基础上进行解释运行的语言。
Java类库负责将字节码文件翻译成具体硬件环境和操作系统平台下的机器代码,便于执行。因而Java程序不能直接运行在现有的操作系统平台上linux如何运行exe文件,它必须运行在被称为Java虚拟机的软件平台之上。
Java虚拟机(JVM)是运行Java程序的软件环境linux如何运行exe文件,Java类库是Java虚拟机的一部份。在运行Java程序时,首先会启动JVM,之后由它来负责解释执行Java的字节码程序,但是Java字节码程序只能运行于JVM之上。这样借助JVM就可以把Java字节码程序和具体的硬件平台以及操作系统环境分隔开来,只要在不同的计算机上安装了针对特定平台的JVM,Java程序就可以运行,而不用考虑当前具体的硬件平台及操作系统环境,也不用考虑字节码文件是在何种平台上生成的。
JVM把这些不同软、硬件平台的具体差异隐藏上去,进而实现了真正的二补码代码级的跨平台移植。JVM是Java平台构架的基础,Java的跨平台特点正是通过在JVM中运行Java程序实现的。Java的这些运行机制可以通过图2来说明。
图2JVM工作方法
Java语言这些“一次编撰,四处运行”的方法,有效地解决了目前大多数中级程序设计语言须要针对不同系统来编译形成不同机器代码的问题,即硬件环境和操作平台的异构问题,大大减少了程序开发、维护和管理的花销。
提示:Java程序通过JVM可以实现跨平台特点linux下载,但JVM是不跨平台的。也就是说,不同操作系统之上的JVM是不同的,Windows平台之上的JVM不能用在Linux平台,反之亦然。