一文搞懂Java环境变量

记得刚接触Java,第一件事就是配环境变量,作为一个初学者,只知道环境变量怎样配,在加上各种IDE使我们能方便的开发,而忽略了其本质的东西,只知其然不知其所以然,随着不断的深入,终于明白了Java环境变量所代表的的含义。

首先我们来看一下Java中的环境变量,以我自己的为例

  • JAVA_HOME:C:\Program Files\Java\jdk1.8.0_144
  • PATH:%JAVA_HOME%\bin
  • CLASSPATH:.(英文下的一个. 有的版本是.; 还有后面跟这样的.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;)

在Linux下的环境变量

我们先来来解决第一个问题,我们为什么要配置环境变量?

说起配置环境变量,如果我们不配置就不能运行java程序了吗?答案显示是只要安装了jdk(或者jre)我们我们就能运行.class的文件,但是此时在运行时想要运行成功,怎应该用如下方式:

而配好环境变量后编译运行的过程为:

从中我们可以看出环境变量的作用是帮我们省去了java、javac命令前的绝对路径,但其功能可以直接使用。

我们在来看看Windows中内置的环境变量:

我们关注其中的%SystemRoot%\system32

%SystemRoot%\system32文件夹下放的正是Windows的系统文件,如cmd.exe、calc.exe、dxdiag.exe、msconfig.exe等,这些文件的可以之间在cmd下输入文件名就可以直接运行,但是如果把环境变量中的%SystemRoot%\system32删掉后,就不能运行这些程序。

到现在我想对环境变量大家应该有一个深刻的认识了:配好境变量后,当我们运行程序时,系统会自动在环境变量对应的目录下去找我们所要执行的程序,因此省去了命令前的一大串绝对路径。

最后我们来详细的探究一下java环境变量的具体作用:

  • JAVA_HOME:C:\Program Files\Java\jdk1.8.0_144

    JAVA_HOME是指定jdk的安装目录

  • PATH:%JAVA_HOME%\bin

    PATH是指定JAVA命令所在的目录

  • CLASSPATH:.(英文下的一个. 有的版本是.; 还有后面跟这样的.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar;)

    CLASSPATH是指定所要执行的字节码(.class)文件的位置

    可以通过一个简单的例子来理解CLASSPATH

    虽然Hello.class文件不再执行java Hello.class命令的目录下,但是通过参数-classpath指定.class文件的位置任然可以运行Hello.class文件。

一文彻底搞懂Java中的环境变量的更多相关文章

  1. 来吧,一文彻底搞懂Java中最特殊的存在——null

    没事的时候,我并不喜欢逛 P 站,而喜欢逛 programcreek 这些技术型网站,于是那天晚上,在夜深人静的时候,我就发现了一个专注基础但不容忽视的主题.比如说:Java 中的 null 到底是什 ...

  2. 来吧,一文彻底搞懂Java中的Comparable和Comparator

    大家好,我是沉默王二,今天在逛 programcreek 的时候,我发现了一些专注细节但价值连城的主题.比如说:Java 的 Comparable 和 Comparator 是兄弟俩吗?像这类灵魂拷问 ...

  3. 轻松搞懂Java中的自旋锁

    前言 在之前的文章<一文彻底搞懂面试中常问的各种“锁”>中介绍了Java中的各种“锁”,可能对于不是很了解这些概念的同学来说会觉得有点绕,所以我决定拆分出来,逐步详细的介绍一下这些锁的来龙 ...

  4. 深入理解Java中配置环境变量

    深入理解Java中配置环境变量 配置的目的: 本来只在安装JDK的bin目下能运行java.exe,javac.exe,jar.exe,javadoc.exe等Java开发工具包命令,我们现在想让在所 ...

  5. 一文搞懂--Java中重写equals方法为什么要重写hashcode方法?

    Java中重写equals方法为什么要重写hashcode方法? 直接看下面的例子: 首先我们只重写equals()方法 public class Test { public static void ...

  6. 一文搞懂 Java 中的枚举,写得非常好!

    知识点 概念 enum的全称为 enumeration, 是 JDK 1.5 中引入的新特性. 在Java中,被 enum关键字修饰的类型就是枚举类型.形式如下: enum Color { RED, ...

  7. 一篇文章让你搞懂Java中的静态代理和动态代理

    什么是代理模式 代理模式是常用的java设计模式,在Java中我们通常会通过new一个对象再调用其对应的方法来访问我们需要的服务.代理模式则是通过创建代理类(proxy)的方式间接地来访问我们需要的服 ...

  8. 一文彻底搞懂JavaScript中的prototype

    prototype初步认识 在学习JavaScript中,遇到了prototype,经过一番了解,知道它是可以进行动态扩展的 function Func(){}; var func1 = new Fu ...

  9. java中JDK环境变量的配置

    JDK的配置在 window中的配置,我的电脑-->属性-->高级系统设置-->高级-->环境变量中配置,具体下图

随机推荐

  1. kafka笔记2

    Kafka是使用java开发的程序,所以它可以运行在多种操作系统上,安装Kafka之前,需要先安装Java环境,再安装zookeeper broker常规配置 1.broker.id 每个broker ...

  2. 3015C语言_流程设计

    第五章 流程设计 5.1 C语句概述 C语言的语句用来向计算机系统发出指令,一个实际的源程序通常包含若干语句,这些语句用来完成一定的操作任务. 1.其他类型语句 函数调用语句(由函数调用加一个分号构成 ...

  3. Unity Shader 菲涅尔环境反射

    菲涅尔反射描述了一种光学现象,当光照到物体表面时,一部分发生反射,另一部分则进入物体内部,发生折射或散射:相比直接的反射和折射计算,菲涅尔反射更接近真实情况. 可用下面的等式近似计算这种反射效果: F ...

  4. OVS实现VXLAN隔离

    一.实验环境 1.准备3个CentOS7 mini版本的虚拟机,每个主机3个网卡.如图: 图中OVS-1.OVS-2.OVS-3分别为三台CentOS7 mini版虚拟机,分别配备3个虚拟网卡.如图中 ...

  5. 妹子问我maven是啥?从相亲说起。。

    自从上一篇原创文章: 第一次教妹子安装IDEA 在<java技术之家>公号发表之后,大家的好评如潮,这给了我继续写下去的信心.感谢你们的支持,我会继续努力的. 自从漂亮妹妹加入我们研发团队 ...

  6. vscode解决同步设置插件连接不上git

    vscode有一款比较好用的插件,就是设置同步.可以在一台电脑上同步另一台电脑的所有配置及插件! Settings Sync 但是在公司电脑有个奇葩问题,就是连接不上git. 解决:配置代理 &quo ...

  7. C++学习笔记 之 运算符

    用来执行特定的数字或逻辑操作,C++主要提供的运算符如下: 算数运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 算数运算符: 主要运算符:+(加).-(减) .*(乘) ./(除) ...

  8. Codeforces 348B:Apple Tree(DFS+LCM+思维)

    http://codeforces.com/contest/348/problem/B 题意:给一棵树,每个叶子结点有w[i]个苹果,每个子树的苹果数量为该子树所有叶子结点苹果数量之和,要使得每个结点 ...

  9. JS高级程序设计第3章--精简版

    前言:纯手打!!!按照自己思路重写!!!这次是二刷了,想暑假做一次完整的笔记,但用本子来写笔记的话太贵了,可能哪天还丢了..所以还是博客好== 第三章:基本概念(语法.数据类型.流控制语句.函数) 3 ...

  10. 基于SpringCloud的Microservices架构实战案例

    @import url(http://i.cnblogs.com/Load.ashx?type=style&file=SyntaxHighlighter.css);@import url(/c ...