一、介绍

环境变量和普通的我们定义的变量其实含义类似的,想下我们Java类中普通的环境变量,一般作用是留给下面的方法去使用。

本文中单独说的环境变量差不多是系统的环境变量,比如linux中我们可以通过env命令查看所有的环境变量,如下图:

其中就有我们熟悉的:HOSTNAME。

那么我们大致能知道环境变量的用途:系统或程序中使用。

比如windows中的PATH,就是windows系统会使用,基于PATH去找执行文件。

比如linux中HOSTNAME,不仅linux系统会使用,用户可能也会使用。

二、Java环境变量

参考:理解环境变量 JAVA_TOOL_OPTIONS - SegmentFault 思否

JAVA_TOOL_OPTIONS就是个环境变量,它会被JNI API的JNI_CreateJavaVM函数使用。因为JAVA_TOOL_OPTIONS是被被JNI_CreateJavaVM调用的,顾名思义是创建VM

各种OPTIONS的区别:

也许你经常遇到JAVA_OPTS、_JAVA_OPTIONS和JAVA_TOOL_OPTIONS,那么他们有什么不同呢?

  • JAVA_OPTS:常用于一些应用的配置,如Tomcat,但它一般不作为环境变量,也不能被JVM识别的,是那些应用的自定义配置;

  • _JAVA_OPTIONS:也是作为环境变量来替代命令行参数的,但它是JVM厂家自定义的,可以覆盖JAVA_TOOL_OPTIONS,但各厂家的不同,_JAVA_OPTIONS是Oracle的JVM,而IBM的则是用IBM_JAVA_OPTIONS。

  • JAVA_TOOL_OPTIONS:是标准的,所有虚拟机都能识别和应用的。

三、linux环境变量

https://my.oschina.net/weiweiblog/blog/5359362

查看环境变量命令:env

Linux系统中重要的10个环境变量

环境变量名称作用
HOME用户的主目录(也称家目录)
SHELL 用户使用的 Shell 解释器名称
PATH定义命令行解释器搜索用户执行命令的路径
EDITOR用户默认的文本解释器
RANDOM生成一个随机数字
LANG系统语言、语系名称
HISTSIZE输出的历史命令记录条数
HISTFILESIZE保存的历史命令记录条数
PS1Bash解释器的提示符
MAIL邮件保存路径

四、K8S的环境变量

容器的环境变量中还包括了容器运行前创建的所有服务的信息,比如默认的kubernetes服务对应了环境变量

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐