Linux 使用export设置环境变量时,如果变量值有空格需要用引号
结果(不完善):
JAVA_OPTS是某些软件如tomcat的启动脚本设置的
_JAVA_OPTIONS 和 JAVA_TOOL_OPTIONS ,如果只有一个存在,则java/javac会使用有值的设置;
如果同时存在,会先检测到JAVA_TOOL_OPTIONS,java命令使用所有变量设置的值;
_JAVA_OPTIONS中同名的值会覆盖JAVA_TOOL_OPTIONS中设置的值(如JVM堆大小),使用jvisualvm查看运行的程序可以发现。
但不确定上述两个变量哪个对java或javac是特定的。
测试用例:
```
[root@centos6 ~]# export JAVA_OPTS=foobar
[root@centos6 ~]# export JAVA_TOOL_OPTIONS=-Dfile.encoding=UTF-8
[root@centos6 ~]# export _JAVA_OPTIONS="-Xmx512m -Xms64m"
[root@centos6 ~]# java -version
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
Picked up _JAVA_OPTIONS: -Xmx512m -Xms64m
openjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
[root@centos6 ~]# javac -version
Picked up JAVA_TOOL_OPTIONS: -Dfile.encoding=UTF-8
Picked up _JAVA_OPTIONS: -Xmx512m -Xms64m
javac 1.8.0_91
```
--------
```
[root@centos6 ~]# export JAVA_OPTS=foobar
[root@centos6 ~]# export JAVA_TOOL_OPTIONS="-Xmx512m -Xms64m"
[root@centos6 ~]# export _JAVA_OPTIONS=-Dfile.encoding=UTF-8
[root@centos6 ~]# java -version
Picked up JAVA_TOOL_OPTIONS: -Xmx512m -Xms64m
Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8
openjdk version "1.8.0_91"
OpenJDK Runtime Environment (build 1.8.0_91-b14)
OpenJDK 64-Bit Server VM (build 25.91-b14, mixed mode)
[root@centos6 ~]# javac -version
Picked up JAVA_TOOL_OPTIONS: -Xmx512m -Xms64m
Picked up _JAVA_OPTIONS: -Dfile.encoding=UTF-8
javac 1.8.0_91
```
--------
```
[root@centos6 ~]# export JAVA_TOOL_OPTIONS="-Xmx256m -Xms64m"
[root@centos6 ~]# export _JAVA_OPTIONS="-Xmx512m -Xms64m"
[root@centos6 ~]# java -version
[root@centos6 ~]# javac -version
```
--------
```
[root@centos6 ~]# export JAVA_TOOL_OPTIONS="-Xmx512m -Xms64m"
[root@centos6 ~]# export _JAVA_OPTIONS="-Xmx256 -Xms64m"
[root@centos6 ~]# java -version
[root@centos6 ~]# javac -version
```
--------
```
[root@centos6 ~]# export JAVA_TOOL_OPTIONS="-Xmx256 -Xms64m"
[root@centos6 ~]# export _JAVA_OPTIONS=
[root@centos6 ~]# java -version
[root@centos6 ~]# javac -version
```
--------
```
[root@centos6 ~]# export JAVA_TOOL_OPTIONS=
[root@centos6 ~]# export _JAVA_OPTIONS="-Xmx256 -Xms64m"
[root@centos6 ~]# java -version
[root@centos6 ~]# javac -version
```
本文介绍了Linux环境下设置JAVA_TOOL_OPTIONS和_JAVA_OPTIONS环境变量的影响。当这两个变量同时存在时,JAVA_TOOL_OPTIONS会先被java命令读取,而_JAVA_OPTIONS中的同名参数会覆盖JAVA_TOOL_OPTIONS的设置。通过测试用例展示了不同设置组合下,java和javac命令如何使用这些环境变量。
1847

被折叠的 条评论
为什么被折叠?



