zoukankan      html  css  js  c++  java
  • 详解Javahome 与 Path 与ClassPath的含义 (转)

    1、首先搞明白内部命令与外部命令的区别
    在学习编程过程中经常遇到这样的概念:
    内部命令
    启动后是常住内存的。
    用dos的时候内存都比较小,非常贵,而内部命令启动后是常住内存的。
    外部命令
    内部直接打就可以执行,外部得进到命令所在的目录或者设置环境变量才可以执行. 
    在java开发中设置的环境变量就解决这个问题的

    2、环境变量的含义(注意:java环境变量设置不分大小写)

    1、java_home(不分大小写),其实这是保存你的jdk安装的路径, (这主要是在路径设置时,使其更为直观和方便,使用%%可以实现对其的逆解析
    例如:D:\Java\jdk1.5.0_05

    2、Path:外部命令搜索路径(它与ClassPath不同,主要提供的是系统命令执行工具的路径,即用于执行命令的.EXE程序,如java、javac,一般不轻易改变
    例如:D:\Java\jdk1.5.0_05\bin
    例如:%JAVA_HOME%\BIN; 当你改变javahome时却不必影响到path你设java_home时不用经常改变path,java_home在path里只是一个相对路径
    当你重装jdk的时候只需要修改一下 java_home 不必修改path

    3、CLASSPATH:类资源位置搜索路径(这是命令执行工具要执行的类文件的地址,java会首先在当前目录Lib下寻找(一般开始就设定了的),如果未找到,则会到CLASSPATH指定的目录下进行寻找。由于是要执行的。class文件,所以其经常要变化,在使用Eclipse等IDE时,由系统自动的根据其位置进行配置。在非IDE方式下,则需要进行手动的配置。

    CLASSPATH: .;D:\jdk1.5.0\lib\tools.jar;D:\jdk1.5.0\jre\lib\rt.jar;
    注意细节你的系统可能已经有其他的软件设置了path:

     程序代码
    .;D:\jdk1.5.0\lib\tools.jar;D:\jdk1.5.0\jre\lib\rt.jar;
    其中的PATH和CLASSPATH是java为所有的应用程序提供的,PATH用于指出命令执行工具的位置(搜寻路径),如java、javac,而ClassPath用于指定需要被命令工具执行的资源文件的位置。
     
    当我们在控制台下敲入:

    如果未配置path路径,指明java这个命令工具的所在地,则其将无法被找到。

    此处可以采用

    1、在“我的电脑”属性中配置系统环境变量

     

    2、在控制台中临时配置两种方式(每次都要重新敲入)

    一般来说,PATH变量的设置一般不会轻易变化,为了节省精力,一边采用在系统环境变量中配置,以避免重复敲入。

    而CLASSPATH变化较大(资源文件的存放),一般会设置一个默认的系统变量,但是在执行命令工具之前,一般要用第2种方式对其进行重新的配置。

     

     


    3、彻底理解 Javahome 与 Path 与ClassPath的含义


    1、PATH,这个是给WINDOWS操作系统用的,告诉命令行里,执行的命令行工具在那里,比如java,javac这都是命令行工具,你在运行里随便敲一个命令,操作系统怎么就知道你这个命令对应的程序在什么地方,就是通过PATH知道的,你编写JAVA程序的时候,需要编译你的代码,执行编译后的代码,用JAVA和JAVAC这2个工具,那么就必须告诉操作系统,这2个工具放在什么地方。
    {WINDOWS提供了一个PATH环境变量,他的作用就是现在这个变量的值路径中去找,如果找到了要运行的EXE就运行,否则失败。如果我们把JAVA里的bin目录这个路径赋给path那么下次我在运行java这个命令的时候,即便是直接输入DOS也能够在path变量中找到JAVA的bin目录下的java指令了。 }


    2、JAVA_HOME,是告诉操作系统,JAVAC和JAVA的具体位置的,因为你安装JAVA的路径可能比较长,不方便在PATH里面写,所以就等于是声明一个简写。

    例如:你的jdk安装路径为
    D:\Java\jdk1.5.0_05
    那么
    java_home = D:\Java\jdk1.5.0_05;
    path  = :%java_home%\bin;

    3、CLASSPATH,是给JAVAC和JAVA用的,告诉他们,你写的JAVA类,是放在什么地方的。
    ——“假设我们要运行一个JAVA程序(hello.java)就要先把它的class文件移动到JAVA里的bin目录下”,为什么要这样做呢?因为我们在用到java hello.class这条指令的时候,DOS不知道hello.class这个文件在哪里,他就先到当前目录中去找,如果找到就运行,否则失败。当然,如果说hello.java在D盘根目录下,你也可以用java D:\hello.class这条指令来运行,但是每次这样做也确实够麻烦。WINDOWS就提供了这样一个环境变量——classpath,如果没有就应该新建一个。我们把D:\这个路径赋值给classpath,那么下次在运行java hello.java的时候就先在当前目录中到,如果找到就运行,如果找不到就在classpath的值路径下去找,找到就运行,找不到就失败。 
  • 相关阅读:
    LightOJ 1239
    LightOJ 1166 Old Sorting 置换群 或 贪心 水题
    vijos 1243 生产产品 DP + 单调队列优化
    POJ 3348 Cows 凸包 求面积
    POJ 1389 Area of Simple Polygons 扫描线+线段树面积并
    POJ 1151 Atlantis 扫描线+线段树
    POJ 1228 Grandpa's Estate 凸包 唯一性
    bzoj 3622 DP + 容斥
    Uva5211/POJ1873 The Fortified Forest 凸包
    POJ 2007 Scrambled Polygon 极角序 水
  • 原文地址:https://www.cnblogs.com/airwindow/p/2619400.html
Copyright © 2011-2022 走看看