学习java的第四天,运行了第一个程序,配置了环境。

day 3 课堂笔记
1、编写程序:Hello word
第一步:安装文本编辑器
第二步:下载JDK 安装JDK13
JDK13安装的时候内置了一个JRE。
JDK8安装的时候,不仅JDk内置了一个JRE,而且还会在JDK目录之外
生成一个独立的JRE。一个是内置的,一个是独立于JDK外的。
对于JDk13来说,生成另一个JRE,需要一个特殊的命令。

JDK的bin目录下有:
javac.exe 编译
java.exe 运行
第三步:写代码
第四步:编译
怎么编译?使用什么命令?这个命令怎么用?
需要使用的命令是:C:\Program Files\Java\jdk-13.0.2\bin\javac.exe

这个命令需要先测试,打开dos,看看javac命令是否可用。
'javac' 不是内部或外部命令,也不是可运行的程序
或批处理文件。

这说明windows没有找到 javac.exe 文件

为什么ipconfig、ping命令可以用?javac用不了?
我们发现windows中有这样一个环境变量,名字叫做:path,
并且发现path环境变量的值是:
%USERPROFILE%\AppData\Local\Microsoft\WindowsApps

配置环境变量path的步骤:
桌面上计算机右键-->属性-->高级系统设置-->环境变量

让javac.exe能用,我们配置那个路径到path中?
C:\Program Files\Java\jdk-13.0.2\bin

环境变量包括“系统变量”和“用户变量”
系统变量:范围比较大,系统变量会让计算机所有用户都起作用。
用户变量:范围比较小,这个变量只是作用于当前用户。
path环境变量都是路径,路径和路径之间用半角分号来间隔。
怎么查看编译器版本?
C:\Users\guoqing>javac -version
javac 13.0.2
怎么查看java虚拟机的版本?
C:\Users\guoqing>java -version
java version "13.0.2" 2020-01-14
Java(TM) SE Runtime Environment (build 13.0.2+8)
Java HotSpot(TM) 64-Bit Server VM (build 13.0.2+8, mixed mode, sharing)

path环境变量的作用就是给windows操作系统指路的。
path=A;B;C;D.......
path是环境变量的名字。
A;B;C;D......是环境变量path的值。

path环境变量是windows中的机制。
----------------------------------------------------------------------------------------------
javac命令怎么用?
语法格式先背会:
javac java源文件的路径。
什么是java源文件?
java源文件的名字以“.java”结尾,该文件中写了java源代码。
java源文件的路径是什么意思?
注意:路径永远包括绝对路径和相对路径。
神操作,把Java源文件直接拖到dos窗口。

C:\Users\guoqing>javac D:\course\javaProjects\02-javase\chapter01\HelloWorld.java
绝对路径
D:\>javac course\javaProjects\02-javase\chapter01\HelloWorld.java
相对路径

神操作:打开文件所在位置,直接输入cmd回车

编译报错不会生成字节码文件“.class”文件。

第五步:运行
运行的前提是“.clsss”文件生成了。没有字节码文件程序无法运行。
假设该文件的名字叫做:HelloWorld.class
那么“HelloWorld“被叫做”类名“。

怎么运行,使用那个命令?
使用JDK的bin目录下的:java.exe命令来运行。
java 类名
java HelloWorld

注意:
java命令和javac命令的区别:
javac命令后跟路径 ( javac HelloWorld.java )
java命令后跟“类名” ( java HelloWrold )
---------------------------------------------------------------------------
运行JAVA命令的步骤(必须)
第一步:先使用cd命令切换到xxx.class文件所在的路径。
第二步:执行 java xxx
切记:
java命令后只能跟 类名。
2、到目前为止我们只配置了一个path环境变量
对于java的JDk所属的环境变量,有一个叫做:java_Home
这个 java_Home 目前我们不需要,不配置这个环境变量也不会影响当前的java程序的运行
但是,到后期学习到javaWeb的时候需要安装Tomcat服务器,到时候JAVA_HOME就必须配置了。

除了JAVA_HOME环境变量之外,JDK相关的环境变量还有其他的吗?
有的。

3、“java HelloWorld”的执行原理以及过程。
D:\course\javaProjects\02-javase\chapter01>java HelloWorld
敲完回车都发生了什么??

第一步:会先启动JVM(java虚拟机)
第二步:JVM启动后,JVM会去启动“类加载器-classloader”

类加载器的作用:加载类的,本质上类加载器负责找硬盘上找“类“对应的”字节码“文件
假设是java HelloWorld 那么类加载器会去硬盘上搜索“HelloWorld.class”文件
假设是java Test那么类加载器会去硬盘上搜索“Test.class”文件。

第三步:类加载器如果在硬盘上找不到了对应的字节码文件,会报错报什么错?
错误: 找不到或无法加载主类 d
原因: java.lang.ClassNotFoundException: d

类加载器如果在硬盘上找到了对应的字节码文件,类加载器会将该字节码文件装载到
JVM当中,JVM会启动“解释器”将字节码解释为二进制码,操作系统执行二进制码和
硬件进行交互。

类加载器默认从当前路径下寻找字节码文件。神操作:在dos窗口可以通过上下键来显示之前写的指令。

给类加载器指定一个路径来找字节码文件
需要设置一个环境变量——classpath
classpath环境给类加载器来指路。

classpath环境变量是java特有的。
classpath是一个变量名:A路径;B路径;C路径

我们把classpath配置一下,这个环境变量隶属于JAVA特有的,需要新建。
注意:
变量名不能随意写,大小写没关系。

配置了classpath后,类加载器只会去配置的环境变量的路径下找。

classpath环境给类加载器来指路。
不再从当前路径下找。

猜你喜欢

转载自www.cnblogs.com/spring-me/p/13166437.html