2019独角兽企业重金招聘Python工程师标准>>>

在学习Java的过程中,涉及到多个环境变量(environment variable)的概念,如PATH。正确地配置这些环境变量是能够顺利学习、开发的前提。而经常出现的问题是:有的学习者能够按照提示一步一步地正确配置,但时间一长就忘了,出现了问题也无从下手。究其原因,就是对这些概念没有理解,知其然但不知其所以然。下面的内容,就是帮助大家知其所以然。

一、基本原理

1.引例

未设置环境变量,只有在jdk中的bin目录下才可以运行java命令。

安装JDK之后,如果不配置PATH环境变量,无法编译和运行Java程序。

在命令行直接输入"java -version",会出现错误提示信息:“ 'java'不是内部或外部命令,也不是可运行程序或批处理文件 ”

这条错误信息的意思是:你要求运行的“java”这条命令我不认识,不知道是个什么玩意儿。

那当我们打开JDK的安装目录下bin目录,在此目录下运行”dir“命令显示该目录下全部文件,即可发现java.exe

该目录下再次运行"java -version",命令运行成功并显示java版本信息。

2.问题提出

只有写出java.exe的完整路径才能运行java命令?

与java命令类似,javac命令目前也能在bin目录下执行,但到其他目录下就只能写出其完整路径了。在学习Java的过程中,我们经常需要使用javac和java这两条命令来编译、运行我们的JAVA程序。难道我们每次运行这两条命令都要先切换到bin目录下吗或写出一长串的绝对路径吗?能不能有一个办法,让我们能够在任何目录下都能自如地运行这些命令呢?

3.解决方法

解决的办法就在于PATH环境变量。

PATH是路径的意思,PATH环境变量中存放的值,就是一连串的路径。不同的路径之间,用英文的分号(;)分隔开。系统执行用户命令时,若用户未给出绝对路径,则首先在当前目录下寻找相应的可执行文件、批处理文件(另外一种可以执行的文件)等。若找不到,再依次在PATH保存的这些路径中寻找相应的可执行的程序文件。系统就以第一次找到的为准;若搜寻完PATH保存的所有路径都未找到,则会显示类似前面的错误信息。

4.设置PATH

1) 通过命令行设置

set命令设置环境变量格式:set 环境变量名 = 环境变量值

set PATH = D:\Java\jdk1.8.0_101\bin

注意:这样会使PATH只有”D:\Java\jdk1.8.0_101\bin“,其他的值就会被覆盖

因此,我们应该把值“D:\Java\jdk1.8.0_101\bin”追加到PATH中

set PATH = %PATH%;D:\Java\jdk1.8.0_101\bin

把PATH放在两个百分号之间,指把PATH原有的值取出。其后的分号表示分隔不同的路径值,之后才是我们要添加的值。

注意:这种使用set命令的方式设置的环境变量只对当前命令行窗口有效。一旦关闭此窗口,再次运行另一个命令行窗口时,PATH环境变量还是原来的值。 因此,我们必须在Windows下修改PATH环境变量。

2) 通过“属性”添加

右键点击”我的电脑“,依次选择进入”属性“->”高级系统设置“->”环境变量“,编辑PATH值,添加;D:\Java\jdk1.8.0_101\bin

//注意分号

;D:\Java\jdk1.8.0_101\bin

点击确定,添加成功

二、名词释义

我们现在启动一个命令行窗口,按上述的方法把PATH的值全部清除,然后再运行dir、cd等命令。出乎我们意料的是,它们仍然能够正确执行。这又是什么原因呢?

报告错误的信息提到了内部命令、外部命令和批处理文件,那什么使外部命令和内部命令呢?

内部命令和外部命令

内部命令和外部命令是DOS(disk operating system,微软早期基于命令行的操作系统)时代的概念,百度百科的解释是:内部命令是随每次启动的COMMAND_COM装入并常驻内存,而外部命令是一条单独的可执行文件。粗略地讲,所谓内部命令就是最核心、使用最多的命令。为了提高响应速度,系统一启动,这些命令就被加载到内存,因此可以迅速、直接地执行;而外部命令由于使用相对较少,就不预先加载到内存,当用户使用时,再到硬盘上(c:\windows\system32)找相应的可执行文件,然后加载到内存执行。像dir、cd等都是内部命令,而诸如attrib、format等都是外部命令。尽管DOS的时代早已成为了历史,但某些操作却必须在命令行模式下完成,对专业人士来说更是如此。因此,Windows产品一直保留着命令行模式这个工具。

批处理文件

另外一个概念就是批处理文件(后缀名为.bat,来源于批量的英语单词batch),它是另外一种可以执行的文件。简单地说,批处理文件包含了很多DOS命令。文件执行时,就一条一条地执行这些命令。不一定顺序执行,像通用的程序设计语言一样,它也有自己的流程控制。批处理文件创建很简单:用任何一个文本编辑器(如Windows的记事本)创建一个文本文件,然后把后缀名改为.bat即可。创建好的批处理文件,你也可以用文本编辑器打开,查看它的源代码。

三、CATALINA_HOME环境变量

博主未执行此操作,但有助于对环境变量加深理解

Tomcat是一个免费开源的Servlet/JSP容器,深受广大Java初学者喜爱。这其中需要设置CATALINA_HOME环境变量,值为tomcat安装目录(我的是d:\tomcat7),否则会出现错误信息:没有正确设置CATALINA_HOME环境变量,而此变量是运行Tomcat所必须的。

而当你不理会这个信息,在命令行窗口把当前目录切换到tomcat安装目录下的bin目录下,再执行批处理文件startup.bat来启动tomcat时,发现也可以成功。难道现在不需要CATALINA_HOME环境变量了吗?

实际上,在startup.bat中,首先判断CATALINA_HOME是否为空。若为空,就把当前目录设为CATALINA_HOME的值。然后查找CATALINA_HOME所指示的目录下是否有个bin目录,此bin目录下是否有个叫做catalina.bat的批处理文件(此文件负责启动tomcat)。若没有,则把当前目录的父目录设为CATALINA_HOME的值,再重复上述的查找。若仍失败,就报错。

因此,当你在tomcat安装目录下的bin目录下运行startup.bat文件时,它就会按照上面所说的第二种方式自动正确设置CATALINA_HOME的值,因为catalina.bat文件就在tomcat安装目录下的bin目录里。

虽然在此种情况下能正确运行,但还是建议你正确设置CATALINA_HOME环境变量。与PATH不同的是,PATH系统本身就有,而CATALINA_HOME需要你自己新建环境变量。

为了能够在任何目录下都能运行tomcat安装目录下bin目录里的批处理文件,如startup.bat,可把此目录添加到PATH环境变量中(我的是d:\tomcat7\bin)。

为了提高灵活性,可在PATH环境变量的最后添加上%catalina_home%\bin(与前一个值之间不要忘了用英文的分号隔开)。把catalina_home放置在两个百分号之间,表示引用这个环境变量的值(配置Java中JAVA_HOME环境变量同理)。这样,当你把tomcat的安装目录换了以后,就只需要修改catalina_home的值,而不需要修改PATH的值了,因为它可以自动计算出新的正确值

(适用于tomcat6/7)

———————————————————————————————————————————————

Java环境变量配置

1) 需配置3个环境变量

变量名:JAVA_HOME
变量值:C:\Program Files\Java\jdk1.8.0_101
变量名:CLASSPATH
变量值:.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;
变量名:PATH
变量值:%JAVA_HOME%\bin

2) 意义

  • JAVA_HOME:指明JDK的安装路径
  • CLASSPATH:指明Java虚拟机要装载类的路径
  • PATH:指明系统可以在任何路径下识别Java命令

转载于:https://my.oschina.net/zhangyujian/blog/777875

Java配置环境变量及其意义相关推荐

  1. xp java配置_WinXP系统Java配置环境变量的方法

    谈起Java环境变量我想大多数编程人员都知道,因为我们想要进行编程就必须先配置它,不过不少用户不知道WinXP系统Java怎么配置环境变量,为此小编赶紧整理了一篇WinXP系统Java配置环境变量的方 ...

  2. Java配置环境变量教程,Java配置环境变量的作用

    配置Java环境变量的作用 1:可以在cmd窗口(dos命令)运行和编译Java代码, 2:在任何路径下都能运行jdk,不配置环境变量的话,只能在jdk的安装路径下运行,换到其他路径的 话系统会提示找 ...

  3. win10 java 配置环境变量

    win10 java 配置环境变量 ###在安装好JDK后还需要进行环境变量的配置,以下为具体操作步骤: 1.正常下载java后有两个文件 jdk 和 jre 2.然后 此电脑-----属性----- ...

  4. win xp java下载,Win雨林木风xp系统Java配置环境变量的方法

    谈起Java环境变量我想大多数编程人员都知道,因为我们想要进行编程就必须先配置它,不过不少用户不知道Win雨林木风xp系统Java怎么配置环境变量,为此雨林木风系统小编赶紧整理了一篇Win雨林木风xp ...

  5. 中修改环境变量_Golang入门(1):安装与配置环境变量的意义

    摘要 在几年前学习Java的时候,环境的配置就会劝退一部分的初学者.而对于Golang来说,也需要从环境的配置开始学起.这一篇文章将从如何安装Golang开始讲起,随后将会提到Golang中的环境变量 ...

  6. Golang入门(1):安装与配置环境变量的意义

    摘要 在几年前学习Java的时候,环境的配置就会劝退一部分的初学者.而对于Golang来说,也需要从环境的配置开始学起.这一篇文章将从如何安装Golang开始讲起,随后将会提到Golang中的环境变量 ...

  7. java配置环境变量为8后仍然显示为7_jdk7与jdk8环境共存与切换

    1,先安装jdk7,配置环境变量JAVA_HOME,然后安装jdk8. 2,安装jdk8后,JAVA_HOME指向未做修改,执行java -version显示还是以前的jdk7版本信息, 3,接下来我 ...

  8. Java配置环境变量、方法和原因

    首先,你应该已经安装了 java 的 JDK 了,笔者安装的是:jdk-7u7-windows-x64 接下来主要讲怎么配置 java 的环境变量,也是为了以后哪天自己忘记了做个备份 1.进入&quo ...

  9. java配置环境变量path(JAVA配置环境变量失败)

    配置java环境变量path怎么设置? 只需要在path中增加%JAVA_HOME%\bin; 即可.完整的JDK安装及环境变量配置如下: 安装JDK 选择安装目录 安装过程中会出现两次 安装提示 . ...

最新文章

  1. Windows 7的CMD中 Telnet 无法执行的解决办法
  2. 点击后,过段时间cell自动取消选中
  3. A Crowdsourcing Method for Correcting Sequencing Errors for the Third-generation Sequencing Data 一种用
  4. Python 初学者进阶的九大技能(附代码)
  5. web版扫雷小游戏(三)
  6. WinCE 开始菜单StartMenu_Create()函数代码分析
  7. python dict hash算法_2020年3月26日python学习笔记——hash
  8. iOS 去除警告 看我就够了
  9. [Leedcode][JAVA][第41题][缺失的第一个正数][哈希表][数组]
  10. java gson 工具类_GSON 实体 转换工具类
  11. 再谈 Linux下的nanosleep函数
  12. Lambda 表达式入门,这篇够了!
  13. “同芯至远 共叙未来”2021年simcom芯讯通代理商大会
  14. priority的用法
  15. NLP+词法系列(一)︱中文分词技术小结、几大分词引擎的介绍与比较
  16. 212.样本量和测序深度的Alpha多样性稀释曲线
  17. 链家混三个月底薪_上海链家底薪8000劝退贴
  18. 翁恺c语言视频作业题,翁恺入门C语言第2周编程练习
  19. 五一应该去哪里自驾游?哪里人最少,哪里不堵车?这份攻略你必须拥有。
  20. Zend Studio 13.6.1下载和安装汉化破解版

热门文章

  1. 《我也能做CTO之.程序员职业规划》新书出版推举
  2. javamail.providers not found
  3. python三大神器之装饰器
  4. SQL 的执行顺序,记录一下。
  5. 潘建伟团队进行人类首次洲际量子通信 都发送了什么
  6. AE 先进的视频画面 快速释放 慢动作
  7. 张萍萍 计科高职13-1 201303014010 实践三结对项目
  8. Cisco交换机密码配置整理
  9. 感谢大家的支持,MVP之后需要总结
  10. 3月18 周作业题解