磨刀不误砍材工 - 环境搭建(为什么要配置环境变量)

就如同,如果我们想要游泳,前提是需要一个泳池;如果我们想要打篮球,前提是需要一个篮筐一样。

如果我们想要使用Java语言进行开发工作或者想要运行由Java语言编写的程序,那么第一步工作就是搭建一个支持Java语言的环境。


首先我们需要认识Java为我们提供的这两样东西:

JRE - Java Runtime Environment (Java运行环境)

JDK - Java Development Kit  (Java开发库)

顾名思义,如果你的目的只是单纯想要在自己的系统环境下运行用Java语言编写的程序,那么通过安装JRE就足够了。

而如果你是作为一名使用Java语言的开发者,就应当选择安装JDK了。而实际上JDK自身也包含JRE,这是必然的,因为作为开发者的最终目的也是编写可运行的程序。(下载JDK)


现在就可以正式的开始在你的系统环境下搭建Java环境了,搭建的过程其实很简单:

第一步:下载好JDK,找到安装程序按操作提示进行安装。没有任何技术含量。

第二步:配置Java相关的环境变量。需要明确的是, 通常我们配置的相关环境变量有三个:Path,JAVA_PATH,JAVA_HOME;

在深入之前,我们还是先说一说配置环境变量的方法吧,以Win7操作系统为例:

1.右键点击你的“计算机” - “属性” - “高级” - “环境变量”

2.新建一个名为“JAVA_HOME”的环境变量,其值为:你电脑上JDK的安装路径\bin,例如:C:\Program Files (x86)\Java\jdk1.7.0_45

3.找到名为“Path”的环境变量,在现有值的最前端加上:%JAVA_HOME%\bin;

4.新建一个名为“CLASSPATH”的环境变量,通常值我们配置为:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;


事实上配置环境的步骤并没有什么技术含量。可能当我们接触java的第一天,就被要求记住配置它们的方法。

但其实这其中还是值得我们一看的,因为像我一样的菜鸟可能通常掌握了配置方法,却可能忽略了配置这些环境变量的目的是什么。

那不妨现在就让我们来认识一下这些可能被我们忽略的地方。


首先看一下,这样一种情况:

打开你电脑的命令行工具,然后输入命令notepad,敲回车。

这时的情况是:你发现你电脑的记事本程序被打开了。

之所以在命令行输入notepad命令,就可以打开window系统中的记事本程序。

其原因就在于环境变量的配置。所以我们可以以此为例,来认识配置环境变量的功用是什么。

还是老样子,右键点击你的“计算机” - “属性” - “高级” - “环境变量” ,找到名为"path"的环境变量。

点击打开查看它的值,然后,以我的电脑为例,你会发现类似于:C:\Windows\system32;这样的值。

然后输入该值进入到对应的系统路径下,你会发现有很多.exe的应用程序,其中就有notepad.exe。

到了这里,我们似乎已经猜到了什么。那么,就不妨动手验证一下,将path变量中的C:\Windows\system32删掉。

这次我们重新在命令行中输入notepad命令。发现得到这样的提示:'notepad' 不是内部或外部命令,也不是可运行的程序或批处理文件。

这时我们其实已经知道了,简单来说,配置Path的作用在于:

可以在任一路径下调用到Path中配置过的路径下的可执行程序。相反如果没有设置过Path,那么想调用某个目的程序,就必须进入到它所在的路径下。


这时,就让我们回过头看一下,我们在配置Java的环境变量时,

在Path里添加了类似如下的值:C:\Program Files (x86)\Java\jdk1.7.0_45\bin,

正如我们测试记事本程序所做的一样,进入到值对应的系统路径下发现:

该路径下几乎全是Java提供的相关的.exe可执行程序工具,其中最重要的两个工具程序正是:java.exe与javac.exe!

javac.exe能够对Java源文件进行编译;java.exe用于查找和运行Java的可执行文件。


接着,前面介绍过了,实际环境搭建中,我们会配置一个名为"JAVA_HOME"的环境变量。

这个变量的作用实际很简单,它的值永远都是你的电脑上JDK的安装路径。

以我电脑上的配置为例,使用C:\Program Files (x86)\Java\jdk1.7.0_45\bin;和%JAVA_HOME%\bin;两种方式作为环境Path的值,达到的效果实际一模一样。

以面向对象的思想来讲,我们可以认为我们将自己电脑上jdk的安装路径单独封装成了一个字符串对象"JAVA_HOME"。

因为环境变量PATH的值通常都有很长一串,所以我们使用JAVA_HOME的方式好处就在于:

如果我们JDK的安装路径发生了变化,就不用再打开Path变量,在一长串眼花缭乱的值里面去找到要修改的地方,

而直接找到"JAVA_HOME"变量进行修改就OK了。


最后,就是CLASSPATH环境变量的作用了。

要理解它的作用,首先要知道的是:在Java中,以".java"后缀结束的文件,被视为Java程序的源文件。

当编译器对".java"文件成功编译后,我们会得到一个同名的".class"文件,这个文件才是真正意义上Java的执行文件。

所以,我们配置CLASSPATH环境变量的目的实际就在于:设置虚拟机查找指定".class"文件的路径。

举个例子,就更容易明白了,我们写一个HelloWolrd:

public class HelloWorld {
	public static void main(String[] args) {
		System.out.println("Hello java!");
	}
}
</span>
然后,打开命令行工具,利用javac工具对其进行编译,编译成功得到:HelloWorld.class文件。

我将该文件拷出来,放在我的E盘根目录下。这时我们就可以来看一下CLASSPATH的作用了。

第一种情况,假设这时我们还没有配置过CLASSPATH环境变量,这时我们在命令行通过:java HelloWorld命令想要运行该程序,结果得到如下信息:错误: 找不到或无法加载主类 HelloWorld

然后,我重新配置CLASSPATH为:E:。这时再通过:java HelloWorld命令运行程序,发现成功得到输出信息:Hello java!

前面我们说,CLASSPATH的值通常配置为:".;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar";

值得注意的是最前面的".","."实际上代表的当前路径。也就是说这样配置虚拟机在运行一个程序时,会首先在你当前所在路径下查找是否存在指定的".class"文件。


到此,关于Java开发环境的搭建的事,已经说的差不多了。最后总结一下三个环境变量配置的意义是什么吧。

JAVA_HOME:顾名思义,JAVA的家,也就是指当前计算机上JDK(或JRE)的安装路径。

PATH:用于设置Java中各种命令行工具的所在的文件夹路径。通过PATH的设置可以保证在系统任一路径下都能调用到Java相关的命令行工具。

CLASSPATH:JVM会在该环境变量下设置的对应该路径下查找指定的.class文件运行。


注:

我们可以将:“计算机” - “属性” - “高级” - “环境变量”这样的配置方式视作一种“一劳永逸”的懒汉式配置方式。这样配置的好处在于:一次配置后,永久有效。

同时还有另一种配置方式,在命令行工具中通过“SET”命令进行配置。这种方式是一种“临时”配置方式,也就是说:配置的环境变量,只在当前运行的命令行程序中有效,当退出命令行后,所配置的环境变量也就失效了。

两种方式各有长短,可以根据实际情况选择使用。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值