前言

环境变量:

  • 1.命令行模式查看和设置环境变量
  • 2.Java中查看和设置环境变量

系统属性(系统属性是Java获取和设置)

  • 1.通过虚拟机参数设置系统属性
  • 2.Java中获取和设置系统属性


文章目录

  • 前言
  • 一.环境变量
  • Windows 10:
  • Linux CentOS7:
  • 二.系统属性 (特指Java中获取的系统属性)
  • 三.附录 (内置的环境变量和内置的系统属性)
  • Windows10环境下通过CMD获取的环境变量:
  • Windows10环境下通过Java代码获取的环境变量:
  • Windows10环境下的系统属性:
  • 常见重要的环境变量:
  • 常见重要的系统属性
  • 四.说明



一.环境变量

注意: Linux下获取值是用$,多个路径分割是用:,Windows下获取值是用%变量名%,多个路径分割是用的;.

Windows 10:

SET 显示、设置或删除 Windows 环境变量。
注意环境变量是不能通过java代码来设置的.

  • 查看所有环境变量: set
  • 查看指定环境变量: set 环境变量名 eg: set path
  • 设置指定环境变量: set 环境变量名=值 eg:覆盖值:set path=d:\file;追加值:set path=%path%;d:\file (通过set命令设置的环境变量不是永久性的,只对当前窗口有效)

永久性修改环境变量的方法:
我的电脑-〉属性-〉高级,设置系统的环境变量.

Linux CentOS7:

注意: Linux下是严格区分大小的.

export 显示、设置或删除 Windows 环境变量。

  • 查看所有环境变量: exportexport -p
  • 查看指定环境变量: echo $环境变量名 eg: echo $yves
  • 设置指定环境变量: export 环境变量名=值 eg:覆盖值:export PATH=/home/yves;追加值:export path=$PATH:/home/yves (通过export命令设置的环境变量不是永久性的,只对当前窗口有效.)

永久性修改环境变量方法:在linux下可以设置用户的环境变量(用户目录的.bash_profile);也可以设置系统的环境变量来使得环境变量永久生效(/etc/profile).


二.系统属性 (特指Java中获取的系统属性)

  • 系统属性的设置: 通过JVM参数: -D属性名=值 或者在代码中通过Sytem.setProperty(String key, String value)来设置.
  • 系统属性的获取: 在Java中通过System.getProperty(String key)获取属性值.

三.附录 (内置的环境变量和内置的系统属性)

Windows10环境下通过CMD获取的环境变量:

PATH也是环境变量,它是操作系统用于查找来自命令行或终端窗口的必需可执行文件的系统变量。

C:\Users\User>SET
ALLUSERSPROFILE=C:\ProgramData
ANT_HOME=D:\ProgramFiles\ant-1.10.1
APPDATA=C:\Users\User\AppData\Roaming
CLASSPATH=.;D:\Java\jdk1.8.0_131\lib;D:\Java\jdk1.8.0_131\lib\tools.jar
CommonProgramFiles=C:\Program Files\Common Files
CommonProgramFiles(x86)=C:\Program Files (x86)\Common Files
CommonProgramW6432=C:\Program Files\Common Files
COMPUTERNAME=HEYU
ComSpec=C:\Windows\system32\cmd.exe
FPS_BROWSER_APP_PROFILE_STRING=Internet Explorer
FPS_BROWSER_USER_PROFILE_STRING=Default
HOMEDRIVE=C:
HOMEPATH=\Users\User
JAVA_HOME=D:\Java\jdk1.8.0_131
LOCALAPPDATA=C:\Users\User\AppData\Local
LOGONSERVER=\\HEYU
MAVEN_HOME=D:\ProgramFiles\maven3.5
MYSQL_HOME=D:\ProgramFiles\mysql-5.6.27-winx64
NUMBER_OF_PROCESSORS=3
OneDrive=C:\Users\User\OneDrive
OS=Windows_NT
Path=C:\Windows\system32;C:\Windows;C:\Windows\System32\Wbem;C:\Windows\System32\WindowsPowerShell\v1.0\;C:\Program Files (x86)\ATI Technologies\ATI.ACE\Core-Static;D:\ProgramFiles\IDM Computer Solutions\UltraEdit;D:\Java\jdk1.8.0_131\bin;D:\Java\jdk1.8.0_131\jre\bin;D:\ProgramFiles\maven3.5\bin;D:\ProgramFiles\mysql-5.6.27-winx64\bin;D:\ProgramFiles\ant-1.10.1\bin;C:\Users\User\AppData\Local\Microsoft\WindowsApps;
PATHEXT=.COM;.EXE;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH;.MSC
PROCESSOR_ARCHITECTURE=AMD64
PROCESSOR_IDENTIFIER=AMD64 Family 18 Model 1 Stepping 0, AuthenticAMD
PROCESSOR_LEVEL=18
PROCESSOR_REVISION=0100
ProgramData=C:\ProgramData
ProgramFiles=C:\Program Files
ProgramFiles(x86)=C:\Program Files (x86)
ProgramW6432=C:\Program Files
PROMPT=$P$G
PSModulePath=C:\Program Files\WindowsPowerShell\Modules;C:\Windows\system32\WindowsPowerShell\v1.0\Modules
PUBLIC=C:\Users\Public
SESSIONNAME=Console
SystemDrive=C:
SystemRoot=C:\Windows
TEMP=C:\Users\User\AppData\Local\Temp
TMP=C:\Users\User\AppData\Local\Temp
USERDOMAIN=HEYU
USERDOMAIN_ROAMINGPROFILE=HEYU
USERNAME=User
USERPROFILE=C:\Users\User
windir=C:\Windows

Windows10环境下通过Java代码获取的环境变量:

public static void main(String[] args) {
        Map<String, String> map = System.getenv();
        for (Iterator<String> itr = map.keySet().iterator(); itr.hasNext();) {
            String key = itr.next();
            System.out.println(key + "=" + map.get(key));
        }
    }

Windows10环境下的系统属性:

public static void main(String[] args) {
        Properties props = System.getProperties();
        props.list(System.out);
    }
-- listing properties --
java.runtime.name=Java(TM) SE Runtime Environment
sun.boot.library.path=D:\Java\jdk1.7.0_79\jre\bin
java.vm.version=24.79-b02
java.vm.vendor=Oracle Corporation
java.vendor.url=http://java.oracle.com/
path.separator=;
java.vm.name=Java HotSpot(TM) Client VM
file.encoding.pkg=sun.io
user.script=
user.country=CN
sun.java.launcher=SUN_STANDARD
sun.os.patch.level=
java.vm.specification.name=Java Virtual Machine Specification
user.dir=D:\workspace\Jasper-workspace\base64-...
java.runtime.version=1.7.0_79-b15
java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment
java.endorsed.dirs=D:\Java\jdk1.7.0_79\jre\lib\endorsed
os.arch=x86
java.io.tmpdir=C:\Users\User\AppData\Local\Temp\
line.separator=

java.vm.specification.vendor=Oracle Corporation
user.variant=
os.name=Windows 8.1
sun.jnu.encoding=GBK
java.library.path=D:\Java\jdk1.7.0_79\bin;C:\Windows\Su...
java.specification.name=Java Platform API Specification
java.class.version=51.0
sun.management.compiler=HotSpot Client Compiler
os.version=6.3
user.home=C:\Users\User
user.timezone=
java.awt.printerjob=sun.awt.windows.WPrinterJob
file.encoding=UTF-8
java.specification.version=1.7
user.name=User
java.class.path=D:\workspace\Jasper-workspace\base64-...
java.vm.specification.version=1.7
sun.arch.data.model=32
java.home=D:\Java\jdk1.7.0_79\jre
sun.java.command=cn.com.yves.Test
java.specification.vendor=Oracle Corporation
user.language=zh
awt.toolkit=sun.awt.windows.WToolkit
java.vm.info=mixed mode, sharing
java.version=1.7.0_79
java.ext.dirs=D:\Java\jdk1.7.0_79\jre\lib\ext;C:\Wi...
sun.boot.class.path=D:\Java\jdk1.7.0_79\jre\lib\resources...
java.vendor=Oracle Corporation
file.separator=\
java.vendor.url.bug=http://bugreport.sun.com/bugreport/
sun.cpu.endian=little
sun.io.unicode.encoding=UnicodeLittle
sun.desktop=windows
sun.cpu.isalist=

常见重要的环境变量:

USERPROFILE        :用户目录
USERDNSDOMAIN      :用户域
PATHEXT            :可执行后缀
JAVA_HOME          :Java安装目录
TEMP               :用户临时文件目录
SystemDrive        :系统盘符
ProgramFiles       :默认程序目录
USERDOMAIN         :帐户的域的名称
ALLUSERSPROFILE    :用户公共目录
SESSIONNAME        :Session名称
TMP                :临时目录
Path               :path环境变量
CLASSPATH          :classpath环境变量
PROCESSOR_ARCHITECTURE :处理器体系结构
OS                     :操作系统类型
PROCESSOR_LEVEL    :处理级别
COMPUTERNAME       :计算机名
Windir             :系统安装目录
SystemRoot         :系统启动目录
USERNAME           :用户名
ComSpec            :命令行解释器可执行程序的准确路径
APPDATA            :应用程序数据目录

常见重要的系统属性

java.version Java            :运行时环境版本
java.vendor Java             :运行时环境供应商
java.vendor.url              :Java供应商的 URL
java.home                    :Java安装目录
java.vm.specification.version: Java虚拟机规范版本
java.vm.specification.vendor :Java虚拟机规范供应商
java.vm.specification.name   :Java虚拟机规范名称
java.vm.version              :Java虚拟机实现版本
java.vm.vendor               :Java虚拟机实现供应商
java.vm.name                 :Java虚拟机实现名称
java.specification.version   :Java运行时环境规范版本
java.specification.vendor    :Java运行时环境规范供应商
java.specification.name      :Java运行时环境规范名称
java.class.version           :Java类格式版本号
java.class.path              :Java类路径
java.library.path            :加载库时搜索的路径列表
java.io.tmpdir               :默认的临时文件路径
java.compiler                :要使用的 JIT编译器的名称
java.ext.dirs                :一个或多个扩展目录的路径
os.name                      :操作系统的名称
os.arch                      :操作系统的架构
os.version                   :操作系统的版本
file.separator               :文件分隔符
path.separator               :路径分隔符
line.separator               :行分隔符
user.name                    :用户的账户名称
user.home                    :用户的主目录
user.dir                     :用户的当前工作目录

四.说明

系统属性和环境变量都是名称与值之间的映射。两种机制都能用来将用户定义的信息传递给Java进程。环境变量产生更多的全局效应,因为它们不仅对Java子进程可见,而且对于定义它们的进程的所有子进程都是可见的。在不同的操作系统上,它们的语义有细微的差别,比如,不区分大小写。因此环境变量更可能有意料不到的副作用。程序中尽可能使用系统属性。环境变量应该在需要全局效应的时候使用,或者在外部系统接口要求使用环境变量时使用(比如 PATH)