Java启动参数和脚本
2021/10/10 20:17:25
本文主要是介绍Java启动参数和脚本,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
放假回来什么都不想写,加上最近在忙着看书,各种各样的书,笔记就这样落下了
1. Java启动参数
启动语法:java [-options] -jar xxx.jar [args…]
Java的启动参数有运行时参数 和 JVM 参数,运行时参数就是 main 方法中的 args,而 JVM 参数是我们最常用的参数,下面就来说说 JVM 参数
JVM 参数分为三种:
-
标准参数(-):相对稳定的参数,每个版本的 JVM 都可用
-
非标X参数(-X):默认 JVM 实现参数的功能,但是不保证所有 JVM 都实现,不保证向后兼容
-
非标XX参数(-XX):各个 JVM 实现会有所不同,将来可能会随时取消
1.1 常见标准参数
- -cp(类搜索路径):添加后将不再使用 CLASSPATH 中的类搜索路径
- -DKey=Value(自定义参数):预定义的参数(非-D开头)是有限的,推出了自定义参数,若值有空格用引号包括
1.2 常用X参数
-
-Xms:堆初始大小(默认为物理内存的1/64)
-
-Xmx:堆最大值(默认为物理内存的1/4或者1G)
-
-Xss:线程栈的大小(一般默认为512k)
-
-Xmn:年轻代的初始值及最大值(可用 -XX:NewSize 和 -XX:MaxNewSiz 来分别设置)
1.3 常用XX参数
-XX:+PrintHeapAtGC
-XX:+PrintGCDetails
-XX:+HeapDumpOnOutOfMemoryError
-XX:HeapDumpPath=logs/heapdump.hprof(发生OOM时,dump出快照到文件heapdump.hprof)
-XX:ErrorFile=logs/java_error%p.log( JVM 错误时把日志输出到java_error%p.log中)
1.4 自定义参数
同事写了个功能,然后在项目启动的时候确定是否使用这个功能,挺有趣的(但好像写在配置文件里更方便)
// 加入自定义启动参数 JAVA_OPTS="-DmyArgs.enable=true -Xmx512M -Xms512M ...." // 获取自定义启动参数 if(System.getProperty("myArgs.enable")) { // 启动该功能 }
2. 启停脚本
项目打包后在测试环境的启停都是个体力活,刚好又给笔者遇到了,综合别人的脚本记录了一下
2.1 判断 Java 进程是否存在
APP_NAME=xxx.jar pid=jps -l | grep $APP_NAME if [ -z $pid ]; then echo "$APP_NAME started" else echo "$APP_NAME stoped" fi # 普通进程的 # pid=ps -ef | grep $APP_NAME | grep -v grep | awk '{print $2}'
2.2 启停脚本
APP_NAME=xxxx-1.0-SNAPSHOT.jar pid=0 checkpid() { javaps=`jps -l | grep $APP_NAME` if [ -n "$javaps" ]; then pid=`echo $javaps | awk '{print $1}'` else pid=0 } start() { checkpid if [ $psid -ne 0 ]; then echo "$APP_NAME already started" else echo "Starting $APP_NAME ..." `nohup java -jar $APP_NAME > $APP_NAME'.out' 2>&1 &` checkpid if [ $pid -ne 0]; then echo "$APP_NAME start success" else echo "$APP_NAME start faild" fi fi } stop() { checkpid if [ $pid -ne 0 ]; then echo "Stoping $APP_NAME..." kill -9 $pid if [$? -eq 0 ]; then echo "$APP_NAME stop success" else echo "$APP_NAME stop faild" fi else echo "$APP_NAME already stoped" fi } case "$1" in 'start') start ;; 'stop') stop ;; 'restart') stop start ;; *) # 其他任何情况 echo "help: $0 {start|stop|restart}" echo "例子: ./deploy start exit 1 esac exit 0
这篇关于Java启动参数和脚本的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-07-04TiDB 资源管控的对撞测试以及最佳实践架构
- 2024-07-03万字长文聊聊Web3的组成架构
- 2024-07-02springboot项目无法注册到nacos-icode9专业技术文章分享
- 2024-06-26结对编程到底难不难?答案在这里
- 2024-06-19《2023版Java工程师》课程升级公告
- 2024-06-15matplotlib作图不显示3D图,怎么办?
- 2024-06-1503-Loki 日志监控
- 2024-06-1504-让LLM理解知识 -Prompt
- 2024-06-05做软件测试需要懂代码吗?
- 2024-06-0514-ShardingSphere的分布式主键实现