在dos窗口中编译和运行java文件
配置path环境变量
在学习java时,配置path环境变量主要目的是让windows操作系统可以找到java.exe和javac.exe文件。
所以只要把带有java.exe和javac.exe的文件夹的路径配置到path环境变量中就行了。
path环境变量通过;(英文半角分号)分隔不同的路径。
JAVA_HOME的主要目的是为了方便用户更改jdk版本,可以在JAVA_HOME中直接更改而不用去path中更改,但是不使用JAVA_HOME,直接在path里去配置路径也没有任何问题。
我的电脑——>系统属性——>高级系统设置——>环境变量——>找到系统变量中的path添加路径例如本机中是
;D:\java\jdk1.8.0_201\bin
安装目录不同,以上的路径也不同。
配置成功后,在dos命令窗口中可以输入
java -version
or
javac -version
查看java或者javac 版本
java version "1.8.0_201"
出现版本号,就意味着配置成功,可以使用java和javac命令。
一般情况下,出现
'xxx' 不是内部或外部命令,也不是可运行的程序
或批处理文件。
都是在path环境变量中找到没有相关的路径。
编译java文件
java文件都是以.java结尾的文件。
编译方式:在dos命令窗口中输入
javac 文件路径(包括文件名和后缀.java)
如何快速定位java文件路径
1)在java所在的文件目录中
在地址栏里输入cmd就可以快速定位(不包括文件名)
2)在java所在的文件目录中
按住shift键+鼠标右键,选择“在此处打开命令窗口”,也可以快速定位(不包括文件名)
3)神操作!!!!
可以把要编译的java文件直接拖拽到dos命令窗口中,会直接显示文件的路径包括文件名及后缀。
运行java程序
编译完java文件后,会在同一目录下生成一个文件名相同后缀名为.class的文件。如:
A.java —编译—>A.class
A.class是字节码文件,也是运行java程序的主要文件。
A.class类名为A,B.class类名为B。
运行方式:在dos命令窗口中输入
java 文件名(类名),不需要后缀.class
必须要在.class文件存在的目录中,执行命令。
执行java程序的过程
在dos命令窗口中输入java 类名后
- 会先启动jvm(java虚拟机)
- jvm启动“类加载器”(classloader),类加载器会在硬盘上找字节码文件。如:java a —找—> a.class文件
- 如果没有找到相应的文件,会报错。
错误: 找不到或无法加载主类
如果找到了文件,类加载器会将改文件装载到jvm当中,jvm会启动“解释器”将字节码文件解释为“101000110”二进制码。操作系统执行二进制码与硬件交互。
在执行java程序的过程里上述的第二步中,类加载器在硬盘上找字节码文件的时候,默认情况下会在当前路径中找。所以在执行java命令时必须要在.class文件存在的路径中,执行命令。
classpath环境变量
配置classpath环境变量的目的是给类加载器指路。
当配置了classpath环境变量时,类加载器只会在classpath配置的路径中找,不会再去当前路径中找。
默认情况下:类加载器会到当前路径中找字节码文件。
配置classpath环境变量:类加载器会到指定的路径找字节码文件,如果指定的路径中没有相应的字节码文件,即使在当前路径下有相应的字节码文件,也会报错。
错误: 找不到或无法加载主类