JAVA_OPTS(JVM相关运行参数的变量)设置

网上有很多关于设置JVM进程启动的运行参数的方法,都太乱了。整理了下。

  1. 命令行直接指定法

示例:

java -jar /abstract/path/of/my_app.service --spring.profiles.active=prod -XX:NewSize=512m -XX:MaxNewSize=1024m -Xms512m -Xmx2048m

这种方法的好处是简单方便。

不好处是有可能命令行太长,不方便。

  1. 环境变量应用法

示例:

JAVA_OPTS="-XX:NewSize=512m -XX:MaxNewSize=1024m -Xms512m -Xmx2048m"
java -jar /abstract/path/of/my_service.jar --spring.profiles.active=prod $JAVA_OPTS
  1. 全局定义法

将第2种方法中定义环境变量的方法,不用在启动程序的bash脚本中,而是定义在/etc/profile或~/.bashrc中,这种方法不推荐。因为当你一台机器上运行多个Java进程实例的时候,他们的运行参数,尤其是内存分配等要求可能是不一样的。

  1. 写在最后

为什么我的示例脚本中,jar包文件使用绝对路径呢?这是因为使用绝对路径可以支持同一份代码包复制多个地方、配置不同的端口即可启动多份,快速实现集群或分布式部署。

如果你不使用绝对路径,当启动了多个实例时,你就弄不清楚哪个进程是哪个目录中的哪个jar包了。

运行服务的命令通常是多条配合做好的,放在shell脚本文件中,这样就很方便的维护了。

你可能感兴趣的:(jvm,java,开发语言)