5. 配置环境变量
5.1 配置path环境变量
配置环境变量的原因、目的
当我们直接在DOS命令中输入javac命令时,会出现一个错误,’javac’ 不是内部或外部命令,也不是可运行的程序或批处理文件。
这说明:windows操作系统没有发现“javac.exe”命令在哪里,这是便需要配置环境变量配置path环境变量步骤
桌面计算机上右键—>属性—>高级系统设置—>环境变量,找到path,鼠标双击;path环境变量当中都是路径,路径和路径之间必须采用“半角的分号”分隔。将JDK下bin文件的路径复制到path中。
注意:环境变量包括“系统变量”和“用户变量”
系统变量:范围比较大,系统变量会让计算机所有用户都起作用。
用户变量:范围比较小,这个变量只是作用于当前用户。path环境变量的作用
给windows操作系统指路的。path环境变量不是java中的机制,是windows操作系统中的机制
查看编译器版本使用javac -version命令、java虚拟机的版本使用java -version命令
5.2 javac、java命令怎么用
格式:
javac java源文件的路径
java 类名
注意:
java这个命令,后面跟的是“类名”,而绝对不能跟“文件路径”,使用Java命令时,一定要将当前路径切换到class文件的路径上,不然会报错:“错误: 找不到或无法加载主类”
把java源文件直接拖进到DOS命令窗口,那么DOS命令窗口就有这个路径了。 怎么在DOS命令窗口中快速定位到某个路径呢? 打开计算机—>打开一些文件夹—>在地址栏上直接输入cmd回车,这样直接就过去了。
5.3 “java HelloWorld”的执行过程以及原理
第一步:
会先启动JVM(java虚拟机)
第二步:
JVM启动之后,JVM会去启动“类加载器classloader”
类加载器的作用:加载类的。本质上类加载器负责去硬盘上找“类”对应的“字节码”文件。
第三步:
类加载器如果在硬盘上找到了对应的字节码文件,类加载器会将该字节码文件装载到JVM当中,
JVM启动 “解释器”将字节码解释为“101010000…”这种二进制码,操作系统执行二进制码和
硬件交互。
默认情况下,类加载器去硬盘上找“字节码”文件的时候,默认从哪找??? 默认情况下类加载器(classloader)会从当前路径下找。 而这就是为啥,java命令必须要把当前路径切换到class文件下的原因,这也引出了一个配置 classpath环境变量。
5.4 其他环境变量
对于Java的JDK所属的环境变量,有一个叫做:
- JAVA_HOME
这个JAVA_HOME目前我们不需要,不配置这个环境变量也不会影响当前java程序的运行。
但是后期学习到JavaWeb的时候需要安装Tomcat服务器,那个时候JAVA_HOME就必须配置
- classpath
它是给“类加载器”指路的,classpath环境变量不属于windows操作系统,classpath环境变量 隶属于java。这个环境变量在windows中没有,需要新建;配置了classpath=D:\course之后, 类加载器只会去D:\course目录下找“xxx.class”文件,不再从当前路径下找了。
5.5 JDK的一个新特性
java后面直接加java源文件的路径:
这个特性是为了简化开发而提出,但实际上底层的实现原理还是和以前一样的,以上命令在执行过程中,还是会先进行编译,然后再运行。并且以上的运行方式,编译生成的class文件在硬盘上不存在,看不到。
5.6 注释
//单行注释
/*
多行注释
*/
/**
* javadoc注释:这里的注释信息可以自动被javadoc.exe命令解析提取并生成到帮助文档当中。
*/
5.7 class和public class的区别
- 一个java源文件中可以定义多个class。每个class中都可以定义一个主方法,但是一般一个程序只有一个主方法
- public的类不是必须的。可以没有。
- 在源文件中只要有一个class的定义,那么必然会对应生成一个class文件。
- public的类可以没有,但如果有的话,public修饰的类名必须和源文件名保持一致。
- public的类有也只能有1个。
5.8 类体中不能直接写输出语句
public class Test5{
//不可以这样,编译就会报错
System.out.println("hello1");
// main方法是程序的入口,一个程序必须要有个主方法,不然编译会报错:无法加载主类
//args是可以改变的,他是一个参数名
public static void main(String[] args){
}
//不可以这样,编译就会报错
System.out.println("hello2");
}