Java启动配置详解

这是我参与8月更文挑战的第6天,活动详情查看:8月更文挑战java

对于这个面板,你们都很是熟悉了吧。这是Java程序启动时配置相关参数的面板。今天咱们聊聊启动时主要配置的三个参数:VM options、Program arguments、Environment variables。spring

image.png

VM options 虚拟机选项

VM options,为虚拟机选项。markdown

其大体可分为三种:jvm

  • 标准参数(-),全部的JVM实现都必须实现这些参数的功能,并且向后兼容;

咱们能够在控制台直接输入:java命令查看全部的标准参数post

image.png

最经常使用的 -D<名称>=<值>这个选项,这个选项是设置系统属性。如测试

-Dspring.profiles.active=dev
复制代码

设置的系统属性,咱们能够经过System.getProperty()得到spa

image.png

image.png

  • 非标准参数(-X),默认jvm实现这些参数的功能,可是并不保证全部jvm实现都知足,且不保证向后兼容;

在控制台输入java -X可查看全部非标准参数线程

image.png

常常使用的jvm堆大小就是经过非标准参数设置3d

-Xms<size>        设置初始 Java 堆大小
    -Xmx<size>        设置最大 Java 堆大小
    -Xss<size>        设置 Java 线程堆栈大小
复制代码
  • 非Stable参数(-XX),此类参数各个jvm实现会有所不一样,未来可能会随时取消,须要慎重使用;

如:code

-XX:NewSize=341m,设置年轻代初始值为341M。 -XX:MaxNewSize=341m,设置年轻代最大值为341M。 
-XX:PermSize=512m,设置持久代初始值为512M,但在java8及以后就不支持了,改用XX:MetaspaceSize=512m。 
-XX:MaxPermSize=512m,设置持久代最大值为512M,一样在java8及以后就不支持了,改用-XX:MaxMetaspaceSize=512m。
复制代码

Program arguments 程序参数

这里的配置参数为主类的main方法的参数

public static void main(String[] args)
复制代码

image.png

image.png

Environment variables 环境变量

Environment variables 为环境变量,可经过System.getenv()方法得到。

image.png

image.png

如何经过命令形式设置参数

VM options、Program arguments 参数设置很简单(在控制台输入java以后,第一行就告诉咱们用法了)

image.png

示例:

java -Dphone=xiaomi -classpath "D:\code\my\bread\out\production\bread;" com.carrywei.bread.basic.Environment a b c
复制代码

说明:

「-Dphone=xiaomi -classpath "D:\code\my\bread\out\production\bread;"」为Vm option

「com.carrywei.bread.basic.Environment」为运行的类

「a b c」为 Program arguments

Environment variables参数的设置,并非在程序启动时设置的。它能够配置在系统的环境变量里,也能够在运行的终端设置临时的环境变量(只在此终端生效)

Windows系统设置使用SET命令,Linux使用export命令

Windows 演示效果 image.png

小结

Java启动各类配置项保证了咱们同一套代码可经过不一样的配置运行在不一样的环境上。开发环境使用开发配置,测试环境使用测试配置,生产环境使用生产配置。

相关文章
相关标签/搜索