对于一个Java初学者来说,第一步要做的是安装jdk并配置环境变量,一般按照书上或者网上的步骤,一步步照着做就行了,但是对于初学者来说,很多问题没有解决,比如为什么很多配置方法各不相同,却都能够配置成功?而且很少有人能够解释清楚path,classpath,java_home的含义是什么。
 
首先,我们先来看一下通过cmd对Java文件的执行步骤。我之前在E盘Java文件夹下保存了HelloWorld.java文件,下面使用这个文件进行示范。
首先跳转到Java文件夹目录下
 
然后使用javac命令对HelloWorld.java文件进行编译,此时当前目录下会自动生成一个HelloWorld.class文件。
这一指令的含义是操作系统调用一个名为javac.exe的应用程序对HelloWorld.java文件进行处理,处理结果保存在一个名为HelloWorld.class文件的文件中。
 
然后我们使用java命令对HelloWorld.class文件进行执行,屏幕上显示出“Hello World!”,表示执行成功。
这一指令的含义是操作系统调用一个名为java.exe的应用程序对HelloWorld.class文件进行处理(文件的后缀.class应省略掉)。执行结果出现在屏幕上。
 
       现在我们有一个疑问,系统是如何找到并调用javac.exe和java.exe两个应用程序的?打个比方,平时我们运行某一程序,比如魔兽,酷狗音乐,都是先找到它们的应用程序war3.exe和kugou.exe的所在位置,然后双击运行。那么操作系统是如何自动找到javac.exe和java.exe的位置呢?这就是path环境变量的作用。
 
       path变量的值一般是一连串的目录,当初操作系统需要调用某一应用程序时,会默认的根据path变量的值,在各目录中依次搜索该应用程序,直到找到为止,否则返回错误提示。
 
       本例中系统会根据path变量的值,依次在各个目录下查找javac.exe和java.exe两个应用程序,所以我们要将javac.exe和java.exe的所在目录添加到path环境变量的值中。如图所示,jdk的各个应用程序一般都在安装文件目录下的bin文件夹中,所以我们就应该在path中添加“C:\Program Files\Java\jdk1.6.0_22\bin”这个目录。注意,目录之间用分号“;”隔开;目录位置是在前还是在后没影响,反正系统是要依次查找的。
 
    下面我们来讨论classpath环境变量的作用。它的值也是由目录组成,它的作用在于告诉Java执行环境,在哪些目录下可以找到所要执行的Java程序所需要的类或者包。比如我要运行一个名为Test.class的文件,而这个程序调用了另一个Link.class文件的内容,那么系统必须知道Link.class文件的位置才能调用Link.class文件。如果Link.class文件的目录在classpath环境变量的值中,就可以找到了。
 
     事实上,从jdk5.0开始,会默认在当前目录和jdk的lib目录中(C:\Program Files\Java\jdk1.6.0_22\lib)查找,如果所需的.class文件都在上述两个目录中,则classpath的值只需设置为“.;”,这个点表示当前目录。否则要根据情况添加classpath的值。
 
     至于java_home环境变量,可有可无。java_home一般设置为jdk的安装目录,比如C:\Program Files\Java\jdk1.6.0_22。如果设置了java_home,那么path环境变量可以配置为“%java_home%\bin”,可以看出java_home的作用是使得其他相关环境变量的配置更加方便简洁。
 
     以我的Java环境变量为例,我只配置了两个环境变量
     path: C:\Program Files\Java\jdk1.6.0_22
     classpath: .;
 

【转】Java的path,classpath,java_home环境变量的配置与具体含义的更多相关文章

  1. Java JDK的安装以及环境变量的配置

    安装并配置完Android SDK之后,本想着可以做个简单的APP应用了,只是依然提示我“请确认Java JDK是否安装”类似的报错,于是又进行了Java JDK的安装以及环境变量的配置. 1.下载地 ...

  2. Java JDK 8 安装和环境变量的配置(Linux and Windows)

    Java JDK 8 的安装以及环境变量的配置(Linux and Windows) JDK(Java Development Kit)包含了Java语言的编译器,能够在这里下载: http://ww ...

  3. appium---【已解决】【Mac】如何查看java的安装路径及JAVA_HOME环境变量的配置

    报错截图:根据提示可以看出,JAVA_HOME的环境变量配置错误,需要重新配置. 1.查看Java版本 打开mac电脑,查看java版本,打开终端Terminal,通过命令查看java的版本 Luck ...

  4. Java基础总结02:环境变量的配置

    (一)Windows系统下配置环境变量 ※在"系统变量"中设置3项属性JAVA_HOME.PATH.CLASSPATH(JDK1.5之后此项属性不必再配),若已存在则点击" ...

  5. Java学习笔记二---设置环境变量JAVA_HOME,CLASSPATH,PATH

    1.环境变量包括: JAVA_HOME,CLASSPATH,PATH 2.设置环境变量的目的: 路径搜索,方便查找到jdk的安装路径.方便搜索用到的类文件.方便搜索用到的可执行文件如java,java ...

  6. Java学习笔记2---设置环境变量JAVA_HOME,CLASSPATH,PATH

    1.环境变量包括: JAVA_HOME,CLASSPATH,PATH 2.设置环境变量的目的: 路径搜索,方便查找到jdk的安装路径.方便搜索用到的类文件.方便搜索用到的可执行文件如java,java ...

  7. Java基础学习-Path环境变量的配置

    1.为什么要进行Path环境变量的配置       程序的编译和执行需要使用到javac和java命令,所以只能在bin目录下写程序,而实际开发中,我们不可能将程序全部写到bin目录下,所以我们不许让 ...

  8. JDK的安装与Java环境变量的配置详解

    JDK作为JAVA开发的环境,必须在电脑上安装JDK. 1.下载jdk http://rj.baidu.com/soft/detail/14459.html?ald下载jdk最新版jdk-8u11-w ...

  9. [原创]多版本Java环境变量的配置

    起因:   偶然突发兴致, 收拾下自己的老T500电脑, 用来做个家庭开发用机. 应为每次装系统都有GHOST备份的习惯, 所以需要提前搭建好开发环境. 而且新装系统的目的之一, 也是想研究下Andr ...

随机推荐

  1. ACM_不知所措的统计员

    Problem Description: GDUFE-GAME完美结束,按照惯例,会有一篇报道,描述活动期间的盛况,因此相关人员找到负责统计的ASDF,但是ASDF只知道第i个人在S_i时进场,在E_ ...

  2. Service官方教程(8)Bound Service示例之2-跨进程使用Messenger

    Compared to AIDL When you need to perform IPC, using a Messenger for your interface is simpler than ...

  3. Java 线程 —— Wait (等待)和 Notify(唤醒)

    Wait (等待)和 Notify(唤醒) 这里讲了一个Wait (等待)和 Notfity(唤醒),下面这个实例(工厂,商店,消费者) 额,然后,你就知道了,需要写三个类:工厂类,Shop类,消费者 ...

  4. Java用SAX解析XML

    要解析的XML文件:myClass.xml <?xml version="1.0" encoding="utf-8"?> <class> ...

  5. javascript实现弹层效果

    首先,需要有一个按钮来模拟登录: <button id="btnLogin"class="login-btn">登录</button> ...

  6. LoadRunner脚本回放与设置

    一.runtime setting 1.迭代次数设置与迭代步长(循环间隔时间) 2.日志打印设置       二.实时观看回放 1.动态回放与静态回放(静态回放时,不会有逐行高亮显示:动态回放时高亮显 ...

  7. idea下关联spark源码环境(转)

    0.环境: java 1.8 scala 2.11.8 maven 3.5.0 idea 2017 spark 2.2.0 1完成以下配置 java环境变量 scala环境变量 maven setti ...

  8. iOS---开发实用传感器

    传感器 1.什么是传感器 传感器是一种感应\检测装置, 目前已经广泛应用于智能手机上 2.传感器的作用 用于感应\检测设备周边的信息 不同类型的传感器, 检测的信息也不一样 iPhone中的下面现象都 ...

  9. 动态生成表格呈现还是将表格直接绑定gridview等控件呈现的开发方式选择依据

    动态生成表格呈现还是将表格直接绑定gridview等控件呈现的开发方式选择依据:由存储过程决定,如果编写的存储过程可以生成需要呈现的表格则直接绑定,否则要动态生成表格

  10. IE盒模型和标准w3c盒模型

    Margin(外边距) - 清除边框外的区域,外边距是透明的.Border(边框) - 围绕在内边距和内容外的边框.Padding(内边距) - 清除内容周围的区域,内边距是透明的.Content(内 ...