java怎么用cmd运行(简单的java程序代码)
java程序的运行包括两个非常重要的阶段:
一.编译阶段
注意:java程序员直接编写的java代码(普通文本)是无法被jvm直接识别的,必须通过编译将“普通文本代码”变为“字节码“
第一步:程序员需要在计算机硬盘中任意位置创建一个.java扩展名的文件,该文件被称为 java源文件,源文件当中编写的是java源代码/源程序。java源代码必须符合java的语法规则。
第二步:java程序员需要使用jdk当中自带的javac.exe命令进行java程序的编译。
javac使用规则?
javac java源文件的路径
javac在哪用?
在dos命令窗口中使用,win+r打开“运行窗口”,输入cmd
–注:
一个java源文件可以编译生成多个.class文件
编译阶段主要检查java源代码是否符合java语法。
符合java语法则能生成以.class结尾的字节码文件,
不符合java语法则无法形成字节码文件。
字节码文件不是纯粹的二进制,无法在操作系统中直接执行。
编译结束之后,可以将class文件拷贝到其他操作系统当中(java跨平台性)。
字节码文件/class文件是最终要执行的文件,所以说class文件生成之后,java源文件/.java文件删除并不会影响程序执行。但是一般不删除,最后可能执行效果不是想要的,只能将java源文件重新修改,然后java源文件重新生成class文件,运行class文件生成新的效果。
二.运行阶段
jdk安装之后,除了自带javac.exe之外,还有另一个工具/命令,叫java.exe,java.exe主要负责运行阶段。
java.exe在哪里用?
在dos窗口中使用,win+r打开“运行窗口”,输入cmd
java.exe怎么用?
java 类名 注意与javac命令的区分
例如:硬盘上有一个a.class文件,则:java a
硬盘上有一个b.class文件,则:java b
注意不能写成:java a.class(错误方式)
运行阶段过程步骤:
1.打开dos命令窗口
2.输入:java a
3.java.exe命令会启动java虚拟机(jvm),jvm会启动类加载器classloader。
4.classloader会去硬盘上搜索a.class文件,找到该文件则将该文件字节码文件装载到jvm当中。
5.jvm将a.class字节码文件解释成二进制10101010这样的数据。
6.然后操作系统执行二进制和底层硬件平台进行交互。
编译阶段和运行阶段可以在不同的操作系统上完成,因为java具有跨平台性
java源代码编译后可以删除源代码,只留下字节码,因为源代码不参与程序的执行过程
参与执行过程的是字节码,但是最好不要删除源代码
放源代码的文件扩展名必须是xxx.java
编译生成的字节码文件扩展名是xxx.class
注意:一个java源文件是可以编译生成多个class文件的,最终运行的是class文件
字节码文件不是二进制文件,如果是二进制,就不需要jvm,因为操作系统可以直接执行二进制文件
java程序从开发到最终运行经历的过程:
编译器:(可以在windows上)
第一步:在硬盘中新建xxx.java文件
第二步:使用文本编辑器打开xxx.java文件
第三步:在xxx.java文件中编写“符合java语法规则”的源代码
第四步:保存
第五步:使用编译器(javac【jdk安装后自带】)对xxx.java文件进行编译
第六步:如果xxx.java文件是符合语法规则的,编译会通过;如果xxx.java文件中编写的源代码违背了语法规则,那么编译器会报错,编译器报错后class文件不会生成,只有编译通过了才会生成class字节码文件,并且一个java源文件是可以生成多个class文件的。(编译实质上是检查语法)
运行期:(可以在widows上,也可以在其他的os上)
第七步:如果是在linux上运行需要将windows上生成的class文件拷贝过去,不需要拷贝源代码,真正在linux运行的是字节码。(但是不要删除源代码)
第八步:使用jdk自带的一个命令/工具:java(负责运行的命令/工具)执行字节码
第九步:jvm会将字节码文件装载进去,然后jvm对字节码进行解释(解释器会将字节码解释为二进制)
第十步:jvm会将生成的二进制码交给os,操作系统就会执行二进制码和硬件进行交互
注:在以上过程中,有两个重要命令:
javac命令,负责编译
java命令,负责运行
xxx.java源文件经过编译之后生成了a.class、b.class、c.class等文件
其中称a是一个类,b是一个类,c是一个类;a,b,c是类的名字
以上过程中,程序员的工作:
新建java文件
打开java文件
写java源代码
保存
javac命令编译
java命令运行
上一篇: Java 给图片和动图添加水印的方法
下一篇: Java中的时间日期API知识点总结