深入理解Java的环境变量配置

          对于每一个Java开发者,在开始接触Java时,基本上都要先做一件事,那就是配置Java开发环境,windows环境下,我们首先下载安装JDK,然后再计算机高级变量中添加PATH和CLASSPATH,最后在cmd命令中输入java -version来测试一下,大功告成,开始干活。对于每一个Java程序员来说,这个过程实在是最最基础的技能,但是并不是所有的人都可以说出我们配置环境变量每一步的意义,而这正是这篇文章需要探讨的问题。

  • PATH的意义
         要解释PATH的概念,我们首先要从操作系统讲起,首先,什么是操作系统,百度上的解释如下: 操作系统是管理电脑硬件与软件资源的程序,同时也是计算机系统的内核与基石,我的理解是:操作系统是一个平台,这个平台向下管理硬件资源,向上搭载一些高级的软件,对于用户来说,我们可以使用这个平台来使用硬件和软件资源,用户需要向操作系统发出一些指令,而操作系统需要根据这些指令来给用户相应的反馈,这个过程通常在显示器上展现出来,通常被称作UI(user interface)。以我们常用的windows XP/windows7界面为例,这些界面被称作GUI(graphic user interface), GUI相当于在UI上包了一层华丽的外衣,用户在双击一个exe图标来打开程序时,我们实质上相当于在windows命令行调用了一下这个exe来打开这个程序。
         因为目录的限制,一个操作系统中不会存在完全相同的两个可以执行文件,从标准上来说,我们在命令行中执行一个命令要包括其完整的路径名,比如我们要执行c:\admin\test.exe,我们需要在命令行中输入c:\admin\test.exe,这样一来会比较麻烦,PATH事实上是为了简化用户的命令行输入,在PATH配置后,用户就不需要每次执行一个文件都要输入完整的路径名,例如,只要在PATH中加入c:\admin,我们直接在命令行下输入test.exe,操作系统就会在系统的PATH路径里依次寻找可执行的文件,运行第一个匹配的文件。
        我们用到JDK中的javac和java,都是操作系统下的可执行文件(windows下exe),为了能够在命令行下的任何目录下运行javac或者java,所以我们才需要将它们所在的目录加到PATH中。
  • CLASSPATH的意义
        CLASSPATH直译过来就是类路径,要理解CLASSPATH的概念,我们首先要从java的运行原理讲起,我的理解是:我们可以把java虚拟机看做一个架构于操作系统之上的操作系统,这个特殊的“操作系统”中,只能运行.class文件,而CLASSPATH,则相当于java虚拟机这个操作系统上的PATH,是为了方便我们调用java虚拟机下的.class文件。在classpath中,可以加入.jar和.class文件所在的目录,这样在运行一些需要依赖其他jar包或者.class文件的类时,我们就不需要把完整的路径再加进去。
  • 在非IDE环境下编译运行java类
package com.nomouse;

public class Test{
	public static void main(String[] args){
		System.out.println("Test");
	}
}
       上面是一个java类,路径是c:\Test.java,我们在c:\命令行下运行:
        javac Test.java
        报错:找不到类,这是因为这个类中含有包:com.nomouse,在Java中包的概念其实就相当于操作系统中的目录概念,可以用来区分相同名字的类,因此我们用javac去编译这个类的时候,java编译器现在当前目录找com目录,结果找不到所以报错,我们编译的时候要这样:
        javac -d . Test.java
        就可以了,其中"-d . " 指 当前目录生成java包路径,执行的时候输入:
        java com.nomouse.Test
        运行成功,这样运行的前提是我们的命令行必须定位到com所在的目录,如果我们想要在任意目录下都可以执行到com.nomouse.Test这个类,我们需要借助classpath,执行:
        java -classpath c:\ com.nomouse.Test
        可以再任意目录下执行到相应的类。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值