Java环境变量配置

Java环境变量配置

要介绍如何配置环境变量,首先要知道为什么需要配置环境变量,所以这里先介绍一下java的基础知识。

一、java环境的搭建

1.jdk与jre

jre:java运行环境
jre = java虚拟机 + 核心类库(辅助java虚拟机运行的文件)

jdk: java开发工具集
jdk = jre + java开发工具。

注意:安装jdk的路径,不能带有中文路径或者是空格。

2.jdk目录介绍:

  • bin: 存放的是java的开发工具。
  • db : JDK7附带的一个轻量级的数据库,名字叫做Derby。
  • include :存放的调用系统资源的接口文件。
  • jre : java运行环境
  • lib : 核心类库。
  • src.zip : java源代码

其中bin目录下的两个重要执行文件javac.exe和java.exe:

javac.exe: 启动java编译器对指定的java源文件进行编译。
使用:

javac java源文件

java.exe: 启动java虚拟机解释并执行指定的class文件。
使用:

java 指定的class文件

下面,来编写一个demo来对其进行编译运行Hcx.java

class Hcx{
    public static void main(String[] args) {
        System.out.println("Hello HCX");
    }
}

因为java编译器工具在jdk的bin目录下,两种方式:

  • 方式一:把该文件复制到jdk的bin目录下并使用命令:javac Hcx.java
  • 方式二:在jdk的bin目录下使用绝对路径找到要编译的文件:javac e:\study\Hcx.java

上面的两种方式的缺陷:
方式一中,本身的bin目录是存放java的开发工具的,不应该存在一些其他无关的文件。
方式二中,因为java编译器javac.exe是位于jdk的bin目录下的,在编译执行指定文件时,我们面临的问题是每次编译的时候都需要写上java源文件的完整路径。
解决:
如果电脑可以在任意路径下都能找到java的开发工具,那么问题就解决了。由此引来了环境变量的配置。

二、为什么需要配置环境变量

上面提到,正是因为每次在编译指定文件时,我们都需要写上java源文件的完整路径。下面先介绍一个在控制台写一个可执行文件的文件名的执行原理。

在控制台写一个可执行文件的文件名的执行原理:
在控制台写一个可执行文件的文件名,那么系统首先会在控制台当前路径下去搜索是否存在该文件,如果可以找到指定的文件,那么就执行该文件,如果找不到该文件,那么系统还会根据path的环境变量所保存的路径信息下去搜索是否有指定的文件,如果能找到,那么就执行该文件。

例如输入:mspaint,就可以直接启动该程序了。

所以,对于一些已经在Path环境变量中配置好的文件,都可以在任意路径下执行。

例如notepad记事本程序,在Path变量中已经配置过,所以在任意目录都可执行该程序:


任意目录都可运行notepad.png

三、配置环境变量

一、只设置Path环境变量

我的电脑--->属性--->高级系统设置--->高级--->环境变量--->Path

注意:因为Path环境变量中每个路径都是使用分号隔开的,所以在添加进jdk的bin路径时要注意前后有没有分号。

javac程序在bin目录中,把jdk的bin目录的路径加入到Path变量中:C:\Program Files\Java\jdk1.8.0_25\bin

配置Path环境变量.png

此时,再次编译运行,通过。


编译运行.png

二、使用JAVA_HOME环境变量

目前path环境变量除了保存了我们自己配置的信息以外,还有系统自带的信息,如果一旦不不小心删除了path环境变量信息,那么就可能导致系统部分功能无法使用。

所以为了尽量避免频繁的修改Path环境变量信息,可以使用一个新的变量。

方法:
新建一个环境变量保存jdk安装目录会发生变化的部分,然后在path环境变量上引用新环境变量所保存的信息。
新建一个环境变量:JAVA_HOME
变量值:存放jdk安装路径D:\java\jdk
在Path中引用该变量:%JAVA_HOME%bin

步骤图示:
①新建JAVA_HOME变量


新建javahome环境变量.png

②在Path中引用


在Path中引用javahome.png

三、配置临时环境变量

在现实开发中有时候jdk版本的信息有时候只会使用一次或者几次就不再使用了,那么如果是这种情况,一般都是通过set命令配置临时环境变量。

临时环境变量就是仅对于当前控制台窗口起作用,窗口一旦关闭,那么配置的临时环境变量信息会发生消失。

set命令的用法:

命令格式 作用
set 查看所有的环境变量信息。
set 环境变量的名字 查看指定的环境变量信息。
set 环境变量名字 = 路径信息 设置指定的环境变量信息。
set 环境变量名字 = 清空指定的环境变量信息。
set 环境变量名字 = 新路径;%环境变量名字% 在原有的基础上添加新的路径信息。

例:set path=f:\hcx\jdk;%path%

四、classpath环境变量

使用场景:如果class文件在F盘,想要在E盘执行该文件;即当前目录不存在class文件,class文件位于其他目录;此种需求则需要配置classpath环境变量。让jvm去到classpath设置的路径去寻找要执行的class文件。

作用:设置了classpath环境变量的时候,启动jvm(java虚拟机)的时候,那么java虚拟机就会根据classpath环境变量所保存路径信息下去寻找对应的class文件。

classpath的作用: 设置class文件的路径信息
作用是指定类搜索路径,要使用已经编写好的类,前提当然是能够找到它们了,一旦配置了classpath路径信息的时候,jvm与java编译器都会根据classpath指定的路径去寻找class文件。

设置classpath环境变量信息的带分号与不带分号的区别:

  1. 如果配置classpath环境变量信息没有加上分号,那么java虚拟机仅会在classpath所保存的路径下去搜索对应的class文件,不会在当前路径下去搜索了。

  2. 如果配置classpath环境变量信息加上分号,那么java虚拟机除了会在classpath所保存的路径下去搜索对应的class文件之外,如果能找到对应的class文件那么就马上指定对应的class文件,否则还会去当前路径下去搜索。哪个配置在前面就先去哪个地方搜索

注意:不推荐配置永久性的classpath环境变量

classpath会因为是否加分号而优先在某个路径下找,如果配置错了,就可能引发一些莫名其妙的问题;可能本身该目录就有对应的class文件,但是配置classpath变量的时候,忘记写分号或者分号写在了后面,就会导致jvm不优先在当前路径寻找或者直接不在当前路径下寻找对应的class文件。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,029评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,238评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,576评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,214评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,324评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,392评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,416评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,196评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,631评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,919评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,090评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,767评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,410评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,090评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,328评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,952评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,979评论 2 351

推荐阅读更多精彩内容

  • 一、Windows平台 1.安装JDK,安装过程中可以自定义安装目录等信息,例如我们选择安装目录为D:\Java\...
    chjxidian阅读 2,008评论 0 1
  • 我的第一节Java实验课,老师一上来就给了一份文档,然后各种安卓步骤和配置步骤,我是一脸楞逼的。如果你也和我...
    烟花易冷JCL阅读 1,415评论 0 2
  • 1.安装JDK jdk 下载地址:http://www.oracle.com/technetwork/java/j...
    袭明阅读 394评论 0 2
  • 一、下载并安装JDK 1. 下载 第一步:进入JDK下载地址:下载官网地址 这个下载的是最新的版本,下面是以前的版...
    拾光_阅读 403评论 3 1
  • 茫茫人海之中, 唯衷情你一人, 你是诗和远方。 孤独的人儿啊, 最惧怕夜的黑。 夜深最是相思, 相思难捱寂寞。 错...
    鱼我所悦阅读 263评论 0 2