zoukankan      html  css  js  c++  java
  • java环境变量 Path 与CLASSPATH

    1.Windows操作系统根据Path环境变量来查找命令,Linux操作系统则根据PATH环境变量来查找命令

       因为Windows操作系统不区分大小写,设置Path和PATH并没有区别,而Linux系统是区分大小写的设置Path和PATH是有区别的,因此我们只需要设置PATH变量即可

    2.CLASSPATH环境变量定位类:

    1.       JDK 1.5以上的版本完全可以不用设置CLASSPATH环境变量

    2.       1.4以前的JDK版本需要在CLASSPATH环境变量中添加一点(.)用以告诉JRE需要在当前路径下搜索java类

    3.       编译和运行java程序还需要JDK的lib路径的dt.jar和tools.jar文件里的java 类,因此还需要把这两个文件添加到CLASSPATH环境变量里

    因此如果使用JDK1.4以前的版本来编译和运行java程序,需要设置CLASSPATH环境变量的值为:.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar(JAVA_HOEM是JDK的安装路径)

    4.       后来Sun改进了JDK的设计,JRE会自动搜索当前路径下的类文件,而且使用java的编译和运行工具时,统可系以自动加载dt.jar和tools.jar文件中的java类,因此不需要设置CLASSPATH环境变量

    5.       即使使用JDK1.5以上的版本,也可以设置CLASSPATH环境变量,一旦设置了该变量,JRE将会按环境变量指定的路径来搜索java类,这意味着如果CLASSPATH环境变量中不包括(.)也就是没有包含当前路径 ,JRE不会在当前路径下搜索java类

    6.       运行程序时,临时制指定JRE搜索java类路径,可以使用-classpath选型

    Java –classpath dir1;dir2;dir3….;dirN java类

    如果我们在运行java程序时,指定了-calsspath选型的值,JRE严格按-calsspath选项里的路径来搜索java类,既不会在当前路径搜索java类,CLASSPATH环境变量所指定的搜索路径也不再有效。

    如果想CLASSPATH环境变量指定的路径有效,而且还会在当前路径搜索java类:

    Java –classpath %CLASSPATH% ;.;dir1;dir2;dir3;dirN java类

    上面命令通过%CLASSPATH%来引用了CLASSPATH环境变量的值,并在-calsspath选项路的值里添加了一点,强制JRE在当前路径搜索java类

    classpath这个环境变量在设置的时候,应该写成大写还是写成小写呢?

    这个问题在linux下没有疑问,因为linux下的环境变量约定都是大写的,而且linux下环境变量是区分大小写的,所以在linux下应该写成大写的。

    但是这个问题在windows下是有区别的。因为windows下的环境变量不区分大小写,所以原则上写成大写或者小写都可以。一般情况下设置的时候还是推荐设置成大写的,原因是其他的软件比如ant、tomcat等是要求CLASSPATH为大写的,所以为了将来和这些软件良好的配合,最好还是写成大写的。

    windows下的设置很简单。

    右键“计算机”->属性->高级系统设置->系统属性对话框->高级选项卡->环境变量,在调出的环境变量对话框中有两种环境变量:1、用户变量,2、系统变量。同一个环境变量既可以在用户变量中设置也可以在系统变量中设置,比如Path环境变量。这两者的区别是,系统环境变量对系统中的每一个用户都有效,而用户环境变量只对当前用户有效。

    具体来说就是在读取环境变量的时候,如果用户变量和系统变量中同时设置了同一个变量,则先读取在系统变量中设置的内容,然后再读取用户变量中设置的内容。

    主要说一下linux下的设置。

    linux下环境变量设置有两个地方。一个是在/etc/profile文件中,这个文件中设置的环境变量是系统级别的,相当于windows中的系统变量;另一个地方是~/.bash_profile,这个文件中设置的环境变量是用户级别的,相当于windows中的用户变量。

    同一个变量在/etc/profile和~/.bash_profile中同时设置时,当echo  $variableName的时候先读取/etc/profile中的值然后读取~/.bash_profile中的值,最后组合成最终的输出。

  • 相关阅读:
    AngularJS学习之旅
    webbug3.0菜鸟笔记1
    CTF练习(1)这是一张单纯的图片?
    三步删除U深度,老毛桃,大白菜捆绑软件!!
    flex弹性布局学习总结
    C# 播放音乐
    获取文件夹中的所有文件名
    C# 利用委托和事件 传入一个参数进行进行计算并返回结果
    C# 自定义颜色
    检测键盘是否按下指定按键
  • 原文地址:https://www.cnblogs.com/ExMan/p/3798852.html
Copyright © 2011-2022 走看看