Just Do IT !

什么是环境变量

字数统计: 868阅读时长: 3 min
2019/08/02 Share

前言

相信大家初学java时,肯定会涉及到“配置环境变量”,而在网上搜索大多是教我们如何如配置,真正说明为什么要去配置环境变量的不多。

不管在windows里还是liunx里都少不了环境变量的配置,一键Copy是解决不了问题的,还可能会出现各种各样的问题,如果我们搞清楚原理,就会方便许多。

今天我们就以java环境变量来了解,什么是环境变量以及为什么要配置。

什么是环境变量

环境变量(Environment Variable )

环境变量是在操作系统中一个具有特定名字的对象,它包含了一个或者多个应用程序所将使用到的信息。

变量

可以随意给其赋值的一个存储单元

环境

例如jvm这些都属于小软件,它们处于操作系统这个大软件中。

环境变量的作用

变量在任何程序中的作用都是“被赋值/被取值”!这个全局变量操作系统可以使用,其内的小软件也可以使用!

环境变量有哪些

  1. 在Windows中,是由可视化的窗口模式展现出来的

  1. 在Linux中

设置:

/etc/profile文件中设置,export的意思就是将局部变量设置为环境变量。现有的变量是被这样一行代码设置的:

export PATH USER LOGNAME MAIL HOSTNAME HISTSIZE HISTCONTROL

这几个环境变量已经有一些默认值了,不过我们可以追加内容,比如修改PATH:

# : 的意思是并列

PATH = /abc/def:$PATH

查看:

查看全部,使用env命令即可。

查看单个,可以使用echo:如echo $JAVA_HOME。

在JAVA中

我们知道什么是环境变量以后,在java中会具体怎么用到呢?

常见的Java相关环境变量及其作用

PATH

PATH是操作系统用的,用来指定操作系统需要使用到的可执行程序的位置。对于Java来说,通常需要把JDK的bin目录添加进入PATH中,这样你就可以在任意目录下使用bin下面的可执行程序,如javac.exe、java.exe等。

这个变量一定要保证将JRE/JDK的bin纳入其中。

JDK,JRE,JVM三者之间的关系,以及JDK,JRE包含的主要结构有哪些
JDK = JRE + Java的开发工具(javac.exe,java.exe,javadoc.exe)
JRD = JVM + Java核心类库

JAVA_HOME

JAVA_HOME是一个约定,通常它指的是JDK的目录。如果需要JDK的话,大部分程序会默认去环境变量中取JAVA_HOME这个变量。

很重要,一些java开发的工具例如IDEA就需要。

CLASSPATH

在于告诉Java执行环境,在哪些目录下可以找到我们所要执行的Java程序所需要的类或者包。不过在JDK1.5之后的版本完全可以不用设置classpath环境变量就能正常运行程序。

小结

  1. 需要在操作系统下设置的变量:

    PATH中包含JRE/JDK的bin目录。
    JAVA_HOME

  2. 一条命令语句包含命令本身(操作)和操作对象:Command + object,编译和运行Java程序必须经过两个步骤:

  • 将源文件编译成字节码 (javac)

  • 执行平台无关的字节码程序(java)

那么错误可能会有两种情况,一是没有找到命令,二是没有找到命令所要操作的文件。

CATALOG
  1. 1. 前言
  2. 2. 什么是环境变量
    1. 2.1. 环境变量(Environment Variable )
    2. 2.2. 变量
      1. 2.2.1. 环境
      2. 2.2.2. 环境变量的作用
      3. 2.2.3. 环境变量有哪些
  3. 3. 在JAVA中
    1. 3.1. 常见的Java相关环境变量及其作用
      1. 3.1.1. PATH
      2. 3.1.2. JAVA_HOME
      3. 3.1.3. CLASSPATH
  4. 4. 小结