java -jar的参数你都会吗?

1、断点运行

# java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8123,suspend=n -jar ifilldream.jar

断点运行,即可在IDEA中对线上项目进行DEBUG,需要指定一个端口,这里使用了8123作为端口

2、配置运行内存运行

# java -jar -Xms500m -Xmx500m -XX:PermSize=128M -XX:MaxPermSize=256M ifilldream.jar

3、指定配置文件运行

# java -jar ifilldream.jar --spring.profiles.active=prod

其中prod表示配置文件名称。

4、断点 指定内存运行

# java  -Xms500m -Xmx500m -XX:PermSize=128M -XX:MaxPermSize=256M -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8123,suspend=n -jar ifilldream.jar 

5、指定配置文件 断点运行

# java -Xdebug -Xrunjdwp:server=y,transport=dt_socket,address=8123,suspend=n -jar ifilldream.jar --spring.profiles.active=prod2

具体配置说明如下:

* -Xms 表示JVM启动初始堆大小
* -Xmx 表示最大堆大小
* -XX:PermSize 表示非堆区初始内存分配大小,其缩写为permanent size(持久化内存)
* -XX:MaxPermSize 表示对非堆区分配的内存的最大上限
* -XX:newSize 表示新生代初始内存的大小,小于 -Xms的值
* -XX:MaxnewSize 表示新生代可被分配的内存的最大上限,小于 -Xmx的值
* -Xmn 表示-XX:newSize、-XX:MaxnewSize两个参数的同时配置,如果通过-Xmn来配置新生代的内存大小,那么-XX:newSize = -XX:MaxnewSize = -Xmn,虽然会很方便,但需要注意的是这个参数是在JDK1.4版本以后才使用的。
* -XX:NativeMemoryTracking=summary 表示开启内存追踪
* --Xdebug 表示开启调试
* -Xrunjdwp 表示加载JVM的JPDA参考实现库
* server=y/n 表示VM 是否需要作为调试服务器执行
* transport 用于在调试程序和VM使用的进程之间通讯
* dt_socket 表示套接字传输
* suspend=y/n 是否在调试客户端建立连接之后启动VM

注意:通常讲 -Xms 与 -Xmx两个参数的配置相同的值,其目的是为了能够在java垃圾回收机制清理完堆区后不需要重新分隔计算堆区的大小而浪费资源。一般来讲对于堆区的内存分配只需要对-Xms和-Xmx参数进行合理配置即可,但是如果想要进行更加精细的分配还可以对堆区内存进一步的细化,那就要用到下面的三个参数了-XX:newSize、-XX:MaxnewSize、-Xmn。当然这源于对堆区的进一步细化分:新生代、中生代、老生代。java中每新new一个对象所占用的内存空间就是新生代的空间,当java垃圾回收机制对堆区进行资源回收后,那些新生代中没有被回收的资源将被转移到中生代,中生代的被转移到老生代。而接下来要讲述的三个参数是用来控制新生代内存大小的。

如果想要后台运行则在命令行前面加一个nohup,在命令行末加一个&。

# nohup java [options] -jar file.jar &
//options表示参数

其他参数可参考Java官方文档

https://docs.oracle.com/javase/7/docs/technotes/tools/solaris/java.html#BGBJAAEH

java -jar的参数你都会吗?_第1张图片

统一首发平台为-|信-*公|-号"轻梦致新",搜索关注-公|众-**号,第一时间阅读最新内容。

你可能感兴趣的:(java -jar的参数你都会吗?)