详解Javahome 与 Path 与ClassPath的含义 (转)

摘要:
3.彻底理解Java home、Path和ClassPath的含义。1.Windows操作系统使用的PATH告诉命令行要执行的命令行工具,如java和javac,是命令行工具。如果在操作过程中随机键入命令,操作系统如何知道与命令对应的程序在哪里?它是通过PATH知道的。当你编写JAVA程序时,你需要编译你的代码。要执行编译的代码并使用JAVA和JAVAC,你必须告诉操作系统这两个工具的位置。

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用于指定需要被命令工具执行的资源文件的位置。
 
当我们在控制台下敲入:

详解Javahome 与 Path 与ClassPath的含义 (转)第1张

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

此处可以采用

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

详解Javahome 与 Path 与ClassPath的含义 (转)第2张

 

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

详解Javahome 与 Path 与ClassPath的含义 (转)第3张

一般来说,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的值路径下去找,找到就运行,找不到就失败。 

免责声明:文章转载自《详解Javahome 与 Path 与ClassPath的含义 (转)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇SQL Serever学习4SpringBoot 动态修改定时任务频率下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Java 9 揭秘(19. 平台和JVM日志)

Tips做一个终身学习的人。 在这章中,主要介绍以下内容: 新的平台日志(logging)API JVM日志的命令行选项 JDK 9已经对平台类(JDK类)和JVM组件的日志系统进行了大整。 有一个新的API可以指定所选择的日志框架作为从平台类记录消息的日志后端。 还有一个新的命令行选项,可以从所有JVM组件访问消息。 在本章中,详细介绍两个记录工具...

如何使用 Secret?- 每天5分钟玩转 Docker 容器技术(108)

我们经常要向容器传递敏感信息,最常见的莫过于密码了。比如: docker run -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql 在启动 MySQL 容器时我们通过环境变量 MYSQL_ROOT_PASSWORD 设置了 MySQL 的管理员密码。不过密码是以明文的形式写在 docker run 命令中,有潜在的安...

转:Linux实时将所有输出重定向到文件

转自: Linux的重定向机制十分好用,我们经常需要在服务器上挂起一个服务程序,然后将该程序的所有输出重定向到某个文件,这样即使我们注销了用户,程序依然在linux服务器上运行着。 但是重定向的输出经常无法实时刷新到指定文件中,当我们调试程序时,这将给我们带来巨大的困扰。其实只需要关闭重定向输出的缓冲,即可实现实时刷新的效果。 命令如下: unbuffer...

windows下配置caffe(环境:win7+vs2013+opencv3.0)

说明:大部分转载于initialneil的大作Caffe + vs2013 + OpenCV in Windows Tutorial (I) – Setup 准备工作: 1.下载CUDA7.5: https://developer.nvidia.com/cuda-downloads,安装完成后会自动创建变量CUDA_PATH_V7_5 2.下载boost1...

在W10系统中配置Java环境变量后,cmd命令提示符找不到java

java环境变量配置在W10系统上和以前有所区别,可能是W10版本导致也可能是W10一开始就出问题。 问题的表现就是你在环境变量里已经配置完JAVA_HOME,CLASSPATH,path之后在控制台输入java或者javac或者java -version 提示:“”不是内部或者外部命令,也不是可运行程序或批处理文件“” ,问题出在W10系统path变量配...

Windows XP 注册表修改大全

1、在〔我的电脑〕上隐藏软驱 在〔开始〕→〔运行〕→输入〔Regedit〕→〔HKEY_CURRENT_USER〕→〔Software〕 →〔Microsoft〕→〔Windows〕→〔CurrentVersion〕→〔Policies〕→〔Explorer〕 →增加一个 DWORD 值〔NoDrives〕的数值资料请使用十进制及如下设置 隐藏 A 盘为〔...