Java开发前奏--02.开发环境搭建
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------
1. JRE和JDK
1). JRE: Java运行时环境
(1). 全称Java Runtime Environment。
(2). 包含JVM和Java应用程序运行时的核心类库等。
2). JDK: Java开发工具包
(1). 全称Java Development Kit
(2). 是提供给Java开发人员使用的。
其中包含了java、javac、jar等开发工具。同时也包含了JRE。
(3)JDK中包含JRE的原因
JDK中的bin目录下的javac、jar、java等工具也是由Java语言编写的,运行的时候依靠JVM。所以必须自带JRE。
注意:
[1]. 安装了JDK之后,不用再次单独特意安装JRE
[2]. JDK中有JRE,JRE中有JVM
[3]. 双击某个exe可能出现一闪而过的现象
原因就是:这个exe不是通过GUI(图形用户界面)而是通过CLI(命令行用户界面)来和用户进行交互的。此时应该在DOS窗口中打开这个exe。
安装时候注意:
[1]. 由于JDK中包含JRE,所以在安装完JDK之后,会自动跳出提示是否再次安装JRE。
此时如果不安装JRE,则你的JRE文件夹是在JDK文件夹下面的
如果此时安装JRE,则会并列JDK文件夹并列创建一个JRE目录。如图所示。
[2]. 安装之后的JDK文件夹可以剪切走,作为绿色版的Java开发套件到别的机器上进行Java
开发使用。
2. 开发环境搭建(一) 配置环境变量path
1). *当你在dos中的使用某个exe命令的时候,windows操作系统怎么查找这个exe的位置呢?
Step1.首先到DOS窗口运行命令的所在的当前的文件夹目录去查找这个exe是否存在。 如果找不到这个exe,转Step2
Step2.操作系统此时到系统的环境变量path中去查找这个exe所在的路径。如果查找到了,就能执行这个命令。否则,就会出现错误提示:xxx不是内部或者外部命令
如果出现上面的错误提示,修正办法就是把这个exe所在的目录位置设置到环境变量
path中。
2). 将JDK的bin目录配置到path中的技巧:
假设要配置的bin目录是: “C:\Program Files\Java\jdk1.7.0_02\bin”
(1). 区分目录中的变化的部分和不变的部分
[1].目录中容易变化的部分设置到JAVA_HOME变量中
这里面“C:\Program Files\Java\jdk1.7.0_02\”是容易随着每次安装java软件的版本
的不同和安装软件的位置不同而变化的,所以把这部分起名叫做JAVA_HOME。
把变量JAVA_HOME添加到系统中。(这个变量和path不一样。不是os自带的,第一次使用的时候并不存在,需要自行手动创建)
[2].目录中相对不变的部分采用和JAVA_HOME组合的方式设置到path中。
**path变量如果想引用其他环境变量的值,使用%环境变量名%
组合之后的要设置到path中的值就是 %JAVA_HOME%\bin
**这样做的好处:一旦jdk目录被修改了,直接修改这个仅仅具有一个取值的JAVA_HOME变量即可,而不用重新修改还有很多目录的path变量
**设置JAVA_HOME的另一个好处:Tomcat服务器本身启动的时候,需要值为JDK下bin的JAVA_HOME环境变量
**修改path的坏处:如果path无意中修改错了,很有可能会导致系统的很多系统软件和应用软件无法使用。
(2). 将设置好的jdk的bin的值添加到path中
[1]. OS在path中查找exe的特点
OS在path中查找所需的exe的顺序就是从path的值的最开始查找。先查找到,就执行先查找到路径中的exe。
[2]. 为了使得OS能够率先查找到我们自己设定的jdk的目录,应该把自行设定的
%JAVA_HOME%\bin添加到path原有值的前面。如图:
3). 配置环境变量的两种方式
(1). 永久配置
这种方式采用windows对话框来配置的。具体步骤就是:我的电脑(win7就是计算机)à属性à高级à环境变量 一劳永逸的配置:一次配置,永久生效
(2). 临时配置
[1].应用场景:
想在别的电脑(没有安装过Java软件)上进行Java程序的开发,此时要求不能修改path变量。这个时候采用临时配置jdk最为方便。
[2].临时配置步骤:
Step1. 打开dos命令行窗口。(>set 某个环境变量的名字 可以查看这个环境变量的值)
Step2. 输入set path=xxxxx;%path%
其中:xxxxx是要设置jdk的目录 %path%是获取原始path变量中的值
**注意:这种临时配置jdk的方式仅仅在当前的dos和通过当前dos窗口通过start命令生成的新窗口有效。如果关掉这个dos窗口之后,重新手动打开一个新的dos窗口,刚才的set path无效。
4). 主函数main的作用
(1). 可以保证指定类独立运行。
(2). main方法是JVM运行一个程序的入口
注意:一个java源文件可以编写多个默认修饰符修饰的类。当使用javac工具进行编译这个.java源文件之后,会自动生成多个以每一个类名为名字的 .class文件。
3. 开发环境搭建(二) 配置环境变量classpath
如果想通过java.exe这个工具去运行某个字节码文件(.class),必须到这个字节码文件所在的目录下才能执行。否则会抛出异常
Exception in thread “main” java.lang.NoClassDefFoundError:xxx
想法: 能不能在任意目录下,都能执行某一固定文件夹下存放的.class的字节码文件?
做法:可以像配置javac和java一样,把这个指定的目录告诉系统的某个环境变量。让系统自行查找指定位置的字节码文件。
-------------------这就需要配置classpath环境变量。
配置classpath环境变量
(1). 临时配置
[1]. 在所在的命令行窗口中 输入set classpath=”字节码文件所在的目录;”。
之后便可以在任意文件夹下面运行刚才在classpath中指定的字节码文件所在的目录
[2]. JVM执行class文件的原理:就是在执行java xxx.class回车之后,JVM就回到classpath中去查找有没有名叫xxx.class的字节码文件。如果有,就执行。
[3]. 清空环境变量:在cmd中输入 “set 环境变量名=”,就可以清空对应的环境变量的值。
注意:**当执行“java A”的时候,如果在当前目录和classpath中指定的都有同名的A.class的文件,JVM会执行哪一个?JVM会先执行classpath中指定的名叫A.class的字节码文件。如果在classpath中找不到A.class,JVM才会到当前目录找A.class文件。
**如果set classpath=”字节码文件所在的目录;”结尾不加;则JVM仅仅会在classpath中查找,而不会在当前目录查找。
[4]. 设置classpath环境变量来更改JVM查找class文件的顺序
setclasspath=.;其他字节码文件存放的目录
其中,.代表执行命令的当前目录
这是推荐的设置办法。这样JVM首先去当前目录查找需要的class文件。如果没找到,再去后面指定的目录中去查找。如果在当前目录和指定的目录都没找到指定的字节码文件,则java命令指定之后就会抛出异常。
(2). 永久配置
步骤和通过windows对话框的方式配置path变量一样。只不过classpath不是OS自带的变量。第一次使用需要首先手动创建这个变量。其余配置方式一样。
4. classpath和path的不同点
前提:classpath值的末尾加了;
path: 某个命令的时候,首先到当前目录下面查找这个命令是否存在。存在的话,就执行。如果不存在,才会到path的值查找这个命令是否存在。(先当前,后path)
classpath正好和path相反。java A 执行之后,JVM会首先到classpath中指定的目录去查找有没有指定的类文件。如果有就执行。如果没有,才会到当前目录查找。 (先classpath,后当前)
----------- android培训、java培训、java学习型技术博客、期待与您交流! ------------