Java程序从编写到最终运行需要经历的过程
编译阶段
-
注意:java程序员直接编写的java代码(普通文本)是无法执行被JVM识别的。java程序员编写的java代码这种普通文本必须经过一个编译,将这个“普通文本代码”变成“字节码”,JVM能识别“字节码”。java代码这种普通文本变成字节码的过程,被称为:编译
-
java代码这种普通文本被称为:java源代码。(你编写的代码是源代码)源代码不能直接执行,需要先进行编译,生成源代码对于的“字节码”,JVM可以识别的是字节码。
-
编译阶段和运行阶段可以在不同的操作系统上完成吗?
完全可以,因为Java是跨平台的,可以做到一次编译到处运行。
在windows上编译
编译之后生成了“字节码”
把“字节码”放到linux上运行
-
java源代码一旦编译之后,源代码可以删除吗?只留下字节码可以执行吗?
完全可以执行,因为源代码不参与程序的执行过程。参与程序执行过程的是字节码。
但是最好不要删除源代码。因为有可能执行结果不是你需要的。当执行结果不是你需要的时候,你可以重新打开源代码进行修改,然后重新编译生产新的字节码,再重新执行。这样会有新的执行效果。
-
放源代码的文件扩展名必须是:xxx**.java**
编译生成的字节码文件扩展名是:xxx.class
注:1个java源代码文件是可以编译生成多个class文件的。最终运行的是class文件。
-
问题:字节码文件是二进制文件吗?
字节码文件不是二进制文件。如果是二进制的话,就不需要JVM了。因为操作系统可以直接执行二进制。
-
编译需要使用的命令是:
C:\Users\llhnb>F:\JDK\bin\javac.exe
打开DOS命令窗口,看看javac命令是否可用。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-W7k8rGn9-1602506902976)(C:\Users\llhnb\Pictures\Saved Pictures`S]F89HPDP157XAHEAXG`GO.png)]
-
怎么查看编译器版本?
C:\Users\llhnb>F:\JDK\bin\javac -version
java 1.8.0_131
-
怎么查看编译器版本?
C:\Users\llhnb>F:\JDK\bin\java -version
java version “1.8.0_131”
Java™ SE Runtime Environment (build 1.8.0_131-b11)
Java HotSpot™ 64-Bit Server VM (build 25.131-b11, mixed mode) -
配置环境变量path的步骤:
此电脑–>属性–>高级系统设置–>环境变量
**注意:**环境变量包括“系统变量”和“用户变量”
系统变量:范围比较大,系统变量会让计算机所有用户都起作用。
用户变量:范围比较小,这个变量只是作用于当前用户。
-
path环境变量的作用是什么?
给windows操作系统指路,告诉windows操作系统去哪里找这个命令文件。
path环境变量中有很多很多的路径,路径和路径之间用半角分号分隔。
path=A;B;C;D…
path是环境变量的名字。
A;B;C;D…是环境变量path的值。
注:要学会融会贯通,当在DOS命令窗口中使用该软件的某个命令的时候,如果出现“命令找不出错误了”,这个时候希望大家能够想起来配置环境变量path。
-
javac命令怎么用?
语法格式:javac java源文件的路径
什么是java源文件?
java源文件的名字以“.java"结尾,该文件中写了java源代码。
java源文件的路径是什么意思?
注意:路径永远包括绝对路径和相对路径。
神操作???
把java源文件直接拖进DOS命令窗口,那DOS命令窗口就有这个路径了。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-zrtU3Dpn-1602506902979)(C:\Users\llhnb\Pictures\Saved Pictures\2.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ZO7fTTx3-1602506902980)(C:\Users\llhnb\Pictures\Saved Pictures\3.png)]
-
JDK的bin目录下有:
javac.exe 负责编译
java.exe 负责运行
-
为什么ipconfig、ping等命令可以使用呢?为什么javac用不了?
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-V8aBXhnG-1602506902982)(C:\Users\llhnb\Pictures\Saved Pictures\72D99DF466C5A4C667181EC0B36837C2.png)]
我们发现windows操作系统中有这样一个环境变量,名字叫做:path,
并且发现path变量的值是:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-yrnKwteo-1602506902984)(C:\Users\llhnb\Pictures\Saved Pictures\1.png)]
注意:改完环境变量之后,DOS窗口必须关闭重新打开才会起作用。
将path环境变量中的:c:\windows\system32;删除之后再测试:
C:\Users\Administrator>ifconfig
'ifconfig’不是内部或外部命令,也不是可运行的程序或批处理文件。
运行阶段
-
前提:class文件(字节码)生成了,没有字节码文件程序是无法运行的。
如果该文件的名字叫做:HelloWorld.class
那么HelloWorld就是一个类名。
-
运行时需要用到的命令
使用JDK的bin目录下的:java.exe命令来运行。
语法格式:java 类名
例:java HelloWorld
-
运行步骤:
- 先使用cd命令切换到HelloWorld.class文件所在的路径
- 执行java HelloWorld
切记:java命令后面只要是跟路径,就一定不行。
java命令后面只能跟类名。
-
”java HelloWorld"的执行过程以及原理。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-TZKJ6SqR-1602506902986)(C:\Users\llhnb\Pictures\Saved Pictures\4.png)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-IQIE3qQG-1602506902987)(C:\Users\llhnb\Pictures\Saved Pictures\5.png)]
-
classpath环境变量的作用是什么?
是给类加载器指路的。
在没有配置环境变量classpath的时候,默认从当前路径下加载。
如果配置了环境变量classpath的话,就只能从指定的路径加载了。