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%\lib\dt.jar;%JAVA_HOME%\lib\tools.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中的值,最后组合成最终的输出。

java环境变量 Path 与CLASSPATH的更多相关文章

  1. Java环境变量PATH和CLASSPATH

    Java开发中常用到环境变量的配置,下面简单介绍下Java中经常配置的环境变量:PATH和CLASSPATH. 1.PATH环境变量 1.1 作用简介 安装完JDK(Java Development ...

  2. Java入门:Java环境变量PATH、CLASSPATH、JAVA_HOME

    一些初学者在用java HelloWorld指令运行程序的时候出现: Exception in thread "main" java.lang.NoClassDefFoundErr ...

  3. [转]JAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解

    [转] JAVA环境变量JAVA_HOME.CLASSPATH.PATH设置详解 - dreamman的日志 - 网易博客http://blog.163.com/dreamman_yx/blog/st ...

  4. JAVA环境变量JAVA_HOME、CLASSPATH、PATH设置详解

    Windows下JAVA用到的环境变量主要有3个,JAVA_HOME.CLASSPATH.PATH.下面逐个分析. JAVA_HOME 指向的是JDK的安装路径,如C:\jdk1.5.0_06,在这路 ...

  5. Java中环境变量PATH与CLASSPATH的区别

    在安装JDK时需要添加环境变量,经常使用的环境变量有两个: PATH与CLASSPATH 下面总结一下环境变量的作用. PATH是系统用来指定可执行文件的完整路径.当在CMD中执行命令时,如果执行的可 ...

  6. WINDOWS系统下环境变量PATH和CLASSPATH的意思

    1 PATH 对于没有包含路径的命令,WINDOWS系统会默认去Windows 目录(C:\windows)和系统目录(C:\windows\system32)查找,如果没有找到,就去PATH变量内包 ...

  7. Java 环境变量设置 -- JAVA_HOME CLASSPATH

    1.打开我的电脑--属性--高级--环境变量 2.新建系统变量JAVA_HOME 和CLASSPATH 变量名:JAVA_HOME 变量值:C:\Program Files\Java\jdk1.7.0 ...

  8. Windows 下java环境变量的配置(Windows7 ,8,8.1,10)

    Windows 下java环境变量的配置 在“系统”面板的左上角选择“高级系统设置”,在弹出的系统属性中选择”高级“项,然后点击右下角的“环境变量(N)...”,就此进入JAVA环境变量的配置. 如果 ...

  9. JAVA环境变量配置详解

    JAVA环境变量JAVA_HOME.CLASSPATH.PATH设置详解 Windows下JAVA用到的环境变量主要有3个,JAVA_HOME.CLASSPATH.PATH. JAVA_HOME 指向 ...

随机推荐

  1. [.NET开发] C# BigInteger 处理超大整型数字

    今天遇到一个要处理XSD中Integer的数值区间的计算的问题,Integer这个类型的值区间理论上是可没有边界的,假设目前的值是1.5E+10000, 这个数字已经达到double和Int64都无法 ...

  2. Spring Boot 系统要求

    Spring Boot 2.1.0.RELEASE 方需要 Java 8 or 9 的支持和 Spring Framework 5.1.2.RELEASE 以上的版本. 明确的构建工具的支持,请参考下 ...

  3. ccf第二题总结

    1.游戏 问题描述 小明和小芳出去乡村玩,小明负责开车,小芳来导航. 小芳将可能的道路分为大道和小道.大道比较好走,每走1公里小明会增加1的疲劳度.小道不好走,如果连续走小道,小明的疲劳值会快速增加, ...

  4. 【转】在SQL Server中创建用户角色及授权(使用SQL语句)

    1. 首先在 SQL Server 服务器级别,创建登陆帐户(create login) --创建登陆帐户(create login) create login dba with password=' ...

  5. MySQL解析过程、执行过程

    转载:https://student-lp.iteye.com/blog/2152601 https://www.cnblogs.com/cdf-opensource-007/p/6502556.ht ...

  6. SQL Server 对比数据库差异

    一.视图和存储过程比较 [原理]利用系统表“sysobjects"和系统表“syscomments”,将数据库中的视图和存储过程进行对比.系统表"sysobjects"之 ...

  7. js取的随机数

    Math.round(Math.random()*1000+1) ;//取得1-1000的随即数

  8. tensorflow 模型保存后的加载路径问题

    import tensorflow as tf #保存模型 saver = tf.train.Saver() saver.save(sess, "e://code//python//test ...

  9. 用redis做简单的任务队列(二)

    是用redis做任务队列时,要思考: 用什么数据类型来做任务队列 怎样才能防止重复爬取 上一篇文章已经决定使用list来做任务队列,但是去重问题没有得到解决.这里可以用set来解决思考二的问题,就是防 ...

  10. C++中的数据存储方式自动存储、静态存储和动态存储

    C++中变量存储方式有三种,自动存储,静态存储,动态存储 自动存储简单意义上就是在函数内不用任何关键字直接定义的变量,它在函数被调用时被创建,在函数退出时自动消失, 静态存储顾名思义就是在程序的整个运 ...