重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Java程序的运行过程(执行流程)分析
成都做网站、成都网站建设服务团队是一支充满着热情的团队,执着、敏锐、追求更好,是创新互联的标准与要求,同时竭诚为客户提供服务是我们的理念。创新互联把每个网站当做一个产品来开发,精雕细琢,追求一名工匠心中的细致,我们更用心!
1、编写:是指在 Java 开发环境中进行程序代码的输入,最终形成后缀名为 .java 的 Java 源文件。
2、编译:是指使用 Java 编译器对源文件进行错误排査的过程,编译后将生成后缀名为 .class 的字节码文件,不像C语言那样生成可执行文件。
3、运行:是指使用 Java 解释器将字节码文件翻译成机器代码,执行并显示结果。
字节码文件是一种和任何具体机器环境及操作系统环境无关的中间代码。它是一种二进制文件,是 Java 源文件由 Java 编译器编译后生成的目标代码文件。编程人员和计算机都无法直接读懂字节码文件,它必须由专用的 Java 解释器来解释执行,因此 Java 是一种在编译基础上进行解释运行的语言。
Java 解释器负责将字节码文件翻译成具体硬件环境和操作系统平台下的机器代码,以便执行。因此 Java 程序不能直接运行在现有的操作系统平台上,它必须运行在被称为 Java 虚拟机的软件平台之上。
Java 虚拟机(JVM)是运行 Java 程序的软件环境,Java 解释器是 Java 虚拟机的一部分。在运行 Java 程序时,首先会启动 JVM,然后由它来负责解释执行 Java 的字节码程序,并且 Java 字节码程序只能运行于 JVM 之上。这样利用 JVM 就可以把 Java 字节码程序和具体的硬件平台以及操作系统环境分隔开来,只要在不同的计算机上安装了针对特定平台的 JVM,Java 程序就可以运行,而不用考虑当前具体的硬件平台及操作系统环境,也不用考虑字节码文件是在何种平台上生成的。
JVM 把这种不同软、硬件平台的具体差别隐藏起来,从而实现了真正的二进制代码级的跨平台移植。JVM 是 Java 平台架构的基础,Java 的跨平台特性正是通过在 JVM 中运行 Java 程序实现的。Java 的这种运行机制可以通过下图来说明。
Java 语言这种“一次编写,到处运行”的方式,有效地解决了目前大多数高级程序设计语言需要针对不同系统来编译产生不同机器代码的问题,即硬件环境和操作平台的异构问题,大大降低了程序开发、维护和管理的开销。
提示:Java 程序通过 JVM 可以实现跨平台特性,但 JVM 是不跨平台的。也就是说,不同操作系统之上的 JVM 是不同的,Windows 平台之上的 JVM 不能用在 Linux 平台,反之亦然。
java程序运行不了的主要原因有以下几点:
环境变量没有配好。需要下载jdk配置环境变量(略)
编译失败:语法错误。
语法正确,但是写入了错误的代码,导致出现不理想的运行结果,以为是运行不了。
针对以上几点:
检查jdk是否成功安装,环境变量是否配置成功(略)
填写简单的测试代码如 输出helloworld 看能不能执行
检查自己写的代码,利用调试、断点等测出bug
是找不到类,你看一下你的类名输写是否正常,一般类名都是首字母大写.另外就是在配置CLASSPATH时记得在最前面加上"."代表当前路径.当然你在运行时要找到类的文件夹下.才能找到类
环境变量没配置好!
关于怎么配置环境变量。
在windows桌面上右击“我的电脑”
—
“属性”
—
“高级”
—
“环境变量”,在“系统变量”里我们可以看到系统的各个环境变量的值。双击某个变量名可以修改变量值,变量值之间用“;”隔开。我们还可以“新建”原先没有的变量。与jdk有关的有3个环境变量;“java_home”,“path”,“classpath”。我的系统中“path”变量已经存在,可以直接添加新值(其它变量值不要动,防止其它程序运行异常),其它两个变量需要新建。
“java_home”,设置jdk的安装路径,比如“e:\java\jdk1.5”,以下简称“%java_home%”。
“path”,设置jdk中各个程序的路径,“%java_home%\bin;%java_home%\jre\bin;”
“classpath”,设置java各个类的路径,“.;%java_home%\lib;%java_home%\lib\tools.jar”。前面的“.”不可少,它代表了我们为自己的java类建立的工作路径,其它的是jdk自带的标准类库路径。
设置好环境变量后按“确定”退出。按“win”+“r”键进入“运行”窗口,运行“cmd”进入DOS窗口,在输入“javac”后回车,如果有显示java的帮助信息,就说明环境变量设置成功。