热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Java中JAVA_HOME,PATH,CLASSPATH的作用和配置值。

Java中JAVA_HOME,PATH,CLASSPATH的作用和配置值。,Go语言社区,Golang程序员人脉社

这三个变量都可以设置在系统变量中(右键我的电脑,属性,高级系统设置,环境变量(弹出的框中上面是用户变量,下面是环境变量))
在这里插入图片描述
如图,点击新建之后,上面是变量名,如path,classpath,java_home。下面是变量的值。


  • JAVA_HOME 的值是JDK的安装目录,C:Program FilesJavajdk1.8.0_92。运行Tomcat需要设置此变量。

  • PATH:path变量的值是用户变量中的值与系统变量中的值的叠加。
    配置好JAVA_HOME后,就可以用以下方式把JDK的bin目录添加到PATH中:%JAVA_HOME%bin(注意要与前面的值用英文分号分开)。这样当更改了JDK的安装目录后,就只需改JAVA_HOME,而无需改PATH了,因为操作系统可以自动算出新的bin目录。

当我们安装好JAVA后,若没有正确配置PATH环境变量,则在命令行窗口下运行命令java -version(显示JAVA的版本)命令时,会出错。这条错误信息的意思是,你要求运行的java这条命令我不认识,不知道是个什么玩意儿。那么究竟这个java命令是何方神圣呢?在JDK的安装目录下(我的是C:Program FilesJavajdk1.8.0_92),有一个bin目录(binary:二进制可执行文件)。打开此目录,会发现大量的可执行文件(后缀名为exe的文件。Windows默认隐藏文件后缀名。要显示后缀名,见文章最后)。其中有一个可执行文件即为java.exe。实际上我们执行java命令,就是要运行java.exe这个可执行文件(我们运行其他命令,本质上也是要执行某个程序文件),javacjava编译为.class 文件,也是同理。



  • CLASSPATH:设置方法: .;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar
    顾名思义,就是指要在哪里去寻找字节码文件(.class文件),因为我们知道JAVA程序的执行实际上是执行这些字节码文件。
    CLASSPATH有一点容易出错的是:若不设置,它的默认值是当前目录;而你设置后,又没有把当前目录(“.”,即英文的点)添加进去,则它就不再包含当前目录(这点与PATH不同,PATH总是包含当前目录)不加点的时候会导致找不到类的错误。因此,设置CLASSPATH时,一般先把添加当前目录,再添加其他值(不同的值之间用英文分号分开)。一般JAVA初学者不必自己设置CLASSPATH。当你需要用到第三方jar包(如JDBC驱动程序),而又没有使用eclipse、ant等开发工具,只是纯粹地使用javac、java等命令开发程序时,需要手动设置CLASSPATH。

classpath是javac编译器的一个环境变量。它的作用是指定类搜索路径,它与import、package关键字有关。当你improt.java.util.*时,编译器面对import关键字时,就知道你要引入java.util这个package中的类;但是编译器如何知道你把这个package放在哪里了呢?所以你首先得告诉编译器这个package的所在位置;如何告诉它呢?就是设置CLASSPATH啦。 如果java.util这个package在c:jdk 目录下,你得把c:jdk这个路径设置到CLASSPATH中去!当编译器面对import java.util.*这个语句时,它先会查找 classpath所指定的目录,并检视子目录javautil是否存在,然后找出名称吻合的已编译文件(.class文件)。如果没有找到就会报错!

classpath有点像cc++编译器中的include路径的设置哦,是不是?当cc++编译器遇到include 这样的语句,它是如何运作的?哦,其实道理都差不多!搜索include路径,检视文件!当你自己开发一个package时,然后想要用这个package中的类;自然,你也得把这个package所在的目录设置到CLASSPATH中去!
CLASSPATH的设定,对JAVA的初学者而言是一件棘手的事。所以Sun让JAVA2的JDK更聪明一些。你会发现,在你安装之后,即使完全没有设定CLASSPATH,你仍然能够编译基本的JAVA程序,并且加以执行

可以看出,CLASSPATH 里能包含大量备用的搜索路径。然而,使用JAR 文件时要注意一个问题:必须将JAR文件的名字置于类路径里,而不仅仅是它所在的路径。所以对一个名为grape.jar 的JAR 文件来说,我们的类路径需要包括:.;%JAVA_HOME%libdt.jar;%JAVA_HOME%libtools.jar

个人理解说明:其实从上面可以看出,如果你用记事本来写java程序(在Window下),并用cmd命令窗口中输入javac,java命令,如果你的代码中用到了其它的jar或者你自己的写的类,但又和你的主程序没在一个包下,这时你就要在classpath中设置你要用到的jar或者自己写的类的路径,让Java在编译器可以找到你要用的东西,如上面例子所示。 在我们用一些工具时,如eclipse中,我们可以把一些Jar包什么的添加进来,然后搜索路径的事工具帮我们做了,所以不用在手动加进去。所以在eclipse实际的开发中,没有用到系统配置的classpath,而是自己会生成一个.classpath的文件;只有用cmd javac 编译时会用到系统的classpath

摘录自 https://blog.51cto.com/legend2011/553255



Window文件显示后缀名:
在桌面双击我的电脑(计算机)—> 工具—> 文件夹选项 —> 查看 —>把隐藏已知文件类型的扩展名前面对的勾取消—>确定(或者应用)让你的设置生效 ,见下图。)
在这里插入图片描述


推荐阅读
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • vue使用
    关键词: ... [详细]
  • Linux如何安装Mongodb的详细步骤和注意事项
    本文介绍了Linux如何安装Mongodb的详细步骤和注意事项,同时介绍了Mongodb的特点和优势。Mongodb是一个开源的数据库,适用于各种规模的企业和各类应用程序。它具有灵活的数据模式和高性能的数据读写操作,能够提高企业的敏捷性和可扩展性。文章还提供了Mongodb的下载安装包地址。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • 本文介绍了win7系统休眠功能无法启动和关闭的解决方法,包括在控制面板中启用休眠功能、设置系统休眠的时间、通过命令行定时休眠、手动进入休眠状态等方法。 ... [详细]
  • 一、Hadoop来历Hadoop的思想来源于Google在做搜索引擎的时候出现一个很大的问题就是这么多网页我如何才能以最快的速度来搜索到,由于这个问题Google发明 ... [详细]
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 【Windows】实现微信双开或多开的方法及步骤详解
    本文介绍了在Windows系统下实现微信双开或多开的方法,通过安装微信电脑版、复制微信程序启动路径、修改文本文件为bat文件等步骤,实现同时登录两个或多个微信的效果。相比于使用虚拟机的方法,本方法更简单易行,适用于任何电脑,并且不会消耗过多系统资源。详细步骤和原理解释请参考本文内容。 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 本文介绍了Hyperledger Fabric外部链码构建与运行的相关知识,包括在Hyperledger Fabric 2.0版本之前链码构建和运行的困难性,外部构建模式的实现原理以及外部构建和运行API的使用方法。通过本文的介绍,读者可以了解到如何利用外部构建和运行的方式来实现链码的构建和运行,并且不再受限于特定的语言和部署环境。 ... [详细]
  • 本文介绍了Perl的测试框架Test::Base,它是一个数据驱动的测试框架,可以自动进行单元测试,省去手工编写测试程序的麻烦。与Test::More完全兼容,使用方法简单。以plural函数为例,展示了Test::Base的使用方法。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了在Windows环境下如何配置php+apache环境,包括下载php7和apache2.4、安装vc2015运行时环境、启动php7和apache2.4等步骤。希望对需要搭建php7环境的读者有一定的参考价值。摘要长度为169字。 ... [详细]
  • 本文介绍了如何使用C#制作Java+Mysql+Tomcat环境安装程序,实现一键式安装。通过将JDK、Mysql、Tomcat三者制作成一个安装包,解决了客户在安装软件时的复杂配置和繁琐问题,便于管理软件版本和系统集成。具体步骤包括配置JDK环境变量和安装Mysql服务,其中使用了MySQL Server 5.5社区版和my.ini文件。安装方法为通过命令行将目录转到mysql的bin目录下,执行mysqld --install MySQL5命令。 ... [详细]
  • 本文介绍了包的基础知识,包是一种模块,本质上是一个文件夹,与普通文件夹的区别在于包含一个init文件。包的作用是从文件夹级别组织代码,提高代码的维护性。当代码抽取到模块中后,如果模块较多,结构仍然混乱,可以使用包来组织代码。创建包的方法是右键新建Python包,使用方式与模块一样,使用import来导入包。init文件的使用是将文件夹变成一个模块的方法,通过执行init文件来导入包。一个包中通常包含多个模块。 ... [详细]
author-avatar
手机用户2502861123
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有