Java跨平台的理解
Java语言的一个非常重要的特点就是与平台的无关性。而使用Java虚拟机(JVM)是实现这一特点的关键。一般的高级语言如果要在不同的平台上运行,至少需要编译成不同的目标代码。而引入Java语言虚拟机后,Java语言在不同平台上运行时不需要重新编译。Java语言使用Java虚拟机屏蔽了与具体平台相关的信息,使得Java语言编译程序只需生成在Java虚拟机上运行的目标代码(字节码),就可以在多种平台上不加修改地运行。Java虚拟机在执行字节码时,把字节码解释成具体平台上的机器指令执行。这就是Java的能够“一次编译,到处运行”的原因。
注意:
JVM不是跨平台的,不同的平台有不同的JVM版本
JRE与JDK
什么是JRE
- 包括Java虚拟机(JVM Java Virtual Machine)和Java程序所需的核心类库等,如果想要运行一个开发好的Java程序,计算机中只需要安装JRE即可。
- JRE:JVM + 类库。
什么是JDK
- JDK是提供给Java开发人员使用的,其中包含了java的开发工具,也包括了JRE。所以安装了JDK,就不用在单独安装JRE了。
- 其中的开发工具:编译工具(javac.exe) 打包工具(jar.exe)等
- JDK:JRE + JAVA的开发工具。
Question:为什么JDK中包含一个JRE
答:开发完的程序,需要运行一下看看效果。
安装jdk的时候,里面带有jre,安装过程中让用户手动安装的那套jre也可以不用装(但建议还是安装上哈),这两套jre是一样的。
环境变量理解
增加JAVA_HOME(方便修改路径)
path配置的是可执行的文件.exe,配置后可以在不同的盘符下访问path路径下的可执行文件(jdk的bin目录),尽量放在path的前边同时后面加;
Path
%JAVA_HOME%\bin;xxxxxx.......
classpath配置class文件路径,在jdk1.5以后不用配置了,默认在当前路径去找.class文件的路径(把当前目录当做classpath);如果配置了某个具体的路径,不同地方都可以执行.class文件,那么弊端是所有的class文件都要放在那个路径下,不好
path和classpath的区别
- path配置的是可执行的文件.exe,配置后可以在不同的盘符下访问path路径下的可执行文件
- classpath配置的java的类文件目录 ,就是.class文件所在的目录
如果非要配置,那就配置.; 表示当前路径