学习内容:
如何使用CMD命令--
源代码:
public class plus{
public static void main(String[] args){
int a=20;
int b=30;
System.out.println(a+b);
}
}
错误:
后续内容:
# 1.为什么使用CMD执行Java程序
我们使用[计算机]接触最频繁的就是DOS(Disk Operating System),意思是“磁盘操作系统”,面向磁盘的系统软件,DOS就是人给机器下达命令的集合,是存储在操作系统中的命令集。
好处:
1. 不必深究机器硬件结构,不必硬背2进制数字的机器命令,通过DOS命令,就可完成绝大多数日常操作。
2. DOS还能有效地管理在它控制下的各种软硬件资源,对它们进行合理调度,所有软硬件都在DOS的监控和管理之下,有条不紊地进行运转。
conclusion:在配置环境变量后,Java就是装在系统上面了,dos命令可以使用Java的指令。
# 2.关于为什么要添加环境变量
JVM虚拟机不能直接执行源代码.java,
只能执行 .class 字节码文件,所以需要使用javac 编译.java源文件为字节码.class文件,才能使用Java 命令在虚拟机上运行字节码文件。
配置了Java_HOME 的系统变量:
里面是java的JDK位置所在。
单独配置JAVA_HOME是无法执行javac的,因为JAVA_HOME是jdk的根目录,不是bin目录,因此配置了JAVA_HOME后,还需要在path里面配置bin目录的环境变量,可以用%JAVA_HOME%\bin的写法。
1.JDK有两个重要执行文件**javac.exe**(代码编译文件)和**java.exe**(代码执行文件)在JDK的bin目录下,
2.编译后有字节码class文件,会非常混乱,所以我们写的Java或跑别人的程序一般放在新的目录下。
3.但是,当要运行Java程序时,我们要编译(需要使用javac.exe)和执行(需要使用java.exe),而系统默认在需要运行的程序所在文件夹目录下去寻找这两个执行文件。
4.我们需要配置Path环境变量,使每次程序运行时自动到安装JDK的bin目录下搜索javac.exe和java.exe文件。
结论:所以说环境变量的意义在于,使用CMD时,不用进入jdk的bin目录就可以使用Javac 和Java命令来编译相关源代码和运行对应字节码文件
# 3.JDK,JRE的相关结构:
JRE(Java runtime environment), java程序的运行环境。既然是运行,当然包含jvm,就是虚拟机,还有所有java类库的class文件,都在lib目录下打包成了jar。大家可以自己验证。(JRE可以单独下载)
JDK (java development kit,java的开发工具包,包含各种类库和工具。(JDK里面包含JRE)
记得在环境变量path中设置jdk/bin路径麽?这应该是大家学习Java的第一步吧,老师会告诉大家不设置的话javac和java是用不了的。确实jdk/bin目录下包含了所有的命令。可是有没有人想过用的java命令并不是 jdk/bin目录下的而是jre/bin目录下的呢?不信可以做一个实验,大家可以把jdk/bin目录下的java.exe剪切到别的地方再运行java程序,发现了什么?一切OK!
结构:
(1).bin文件夹:存放jdk附带的实用工具 bin (binary)其中文意思即是:二进制
javac.exe Java语言编译器,它负责将Java源代码(.java文件)便以为字节码(.class文件)文件。
java.exe Java语言解释器,它负责执行Java字节码文件。
appletviewer.exe Java Applet小程序查看器。
javadoc.exe Java语言文档生成器。将源程序中的注释提取成HTML格式文档。
jrre.exse Java语言归档工具,用它可将包结构压缩成一个以.jar作为扩展名的归档文件。
native2ascii.exe 可以将本地字符转化成为ASCII码的小工具。将不同的文字转化为“\uxxxx”形式的16进制Unicode码。
(2) include文件夹
里边包含头文件,支持Java本地接口和Java虚拟机调试程序接口的本地代码编程。
(3) jre文件夹
Java运行时的环境,其中包含Java虚拟机。
(4) lib文件夹:类库
Java开发工具使用的归档文件,其中包含tools.jar,它包含支持JDK的工具和实用程序的非核心类。
(5) src.zip , javafx-src.zip文件夹
其中包含源代码的演示举例程序集。
(6) DB文件夹
一个纯Java实现,开源的数据库管理系统(DBMS)java的内嵌数据库。
(7) src压缩包
存放Java的源代码。
**API = Application Programming Interface**
所以,简而言之,就是类库,你可以调用别人的类库。
就是说你不用自己写代码,直接调用别人的类库,传进去相应的参数就可以获取相应的内容了。
> 例如 String、Thread、Date 等