Java组成结构

java=jre+Java开发工具包
jre=jvm(Java虚拟机)+lib(开发核心类库)

在Java的目录结构中,bin目录中存放的就是Java开发工具,例如 javac jar javadoc 等
在jre的目录中,bin目录就是虚拟机,其他的就是一些核心类库

Java语言的跨平台特性

对跨平台的理解:当你去 oracle官网 下载Java的安装包的时候,也许你会留意到一个问题
每个不同操作系统的机器都有对应不同的安装包,如果安装到机器上就是不同的Java开发环境,但是程序是靠编译器编译
源程序生成字节码文件,然后让虚拟机去运行字节码文件 ,也就是说不同操作系统上面的Java虚拟机是不同的,所以就是
由于不同的平台Java语言设计者都准备着不同的jvm,所以才能达到真正的跨平台!

Java环境变量配置的原理

我相信大部分的学习Java的小伙伴们,对于环境变量的配置都是只知道怎么配置,不知道原理的

1 在这里我先批判一个现实,什么现实呢,市面上现在的大部分关于Java的书呢,都几乎是互相抄袭来的,名字我就不说了
我就在想那些写书的人呢,也不去看看oracle的官方文档,其实他们书上写的Java环境变量的配置是jdk5.0之前的配置
方法,他们的配置方法,大概是配置着三个东西 JAVA_HOME PATH CLASSPATH ,其实这样配置也是可以,只是这个配置
是在jdk5.0之前的配置了,那个时候,jvm还是比较笨的,他不能从自己找到jvm的工具,必须手动配置这个classpath
才可以。

2 三个变量的作用:

  • 环境变量path的作用:为了让控制台在任意路径下都可以Java的开发工具(因为path的配置的路径就是bin路径,bin目录
    中都是开发工具包)
  • Java_home 避免频繁修改path的环境变量信息
  • classpath的作用:设置class文件的所在的路径信息

3 其实最简单粗暴的配置的方式就是将Java的bin目录直接配置到path的路径下就可以了,例如:我的Java安装在D: 下
我的bin目录就是D:javabin 只要将这个配置在path路径中即可,但是为什么后来还有一个JAVA_HOME 啥的出现呢
这里就是一个系统环境变量的引用了,因为path环境变量里的配置都挺重要的,一旦误操作了,就会影响系统的使用,
所以就通过新建一个环境变量JAVA_HOME,将D:javabin 这个目录变化的部分写在Java_HOME中,将不变的%JAVA_HOME%bin
写在path目录中,这样以来,频繁的切换Java的版本都是比较安全的!

由于上面的解说,也就知道了,第二种更加简单的配置java环境的方法:

  • 首先新建一个系统环境变量 变量名:JAVA_HOME 变量值:Java的安装目录 例如:D:JAVA
  • 在path路径中,无论在前面或者后面加上一段这样的代码 %JAVA_HOME% +反斜杠+bin
  • 这样就配置好了,是不是没有配置classpath也可以啊!
    注意:没有英文状态下的分号,一定要加上,否者配置不成功

set设置临时变量

这个看的不是很重要,但是在实际开发中,在不同版本上面测试一个程序的时候,就会用到这个set设置临时变量
不需要到系统配置中去修改环境变量,那样很麻烦,只要在控制台中设置不同的环境变量就可以了

如下:

 set                               查看所有的环境变量信息
 set 环境变零名                     查看指定的环境变量信息
 set 环境变量名=指定的路径           设置指定的环境变量信息
 set 环境变量名=                    清空指定的环境变量信息
 set 环境变量名=新路径;%环境变量名%   设置指定的环境变量信息