光顾着开发了,研究这研究那,其实连最基本的java命令,jar命令都闹不清。
java命令
-server:一定要作为第一个参数,在多个CPU时性能佳
-Xms:初始Heap大小,使用的最小内存,cpu性能高时此值应设的大一些
-Xmx:java heap最大值,使用的最大内存
-XX:PermSize:设定内存的永久保存区域
-XX:MaxPermSize:设定最大内存的永久保存区域
-XX:MaxNewSize:
+XX:AggressiveHeap 会使得 Xms没有意义。这个参数让jvm忽略Xmx参数,疯狂地吃完一个G物理内存,再吃尽一个G的swap。
-Xss:每个线程的Stack大小
-verbose:gc 现实垃圾收集信息
-Xloggc:gc.log 指定垃圾收集日志文件
-Xmn:young generation的heap大小,一般设置为Xmx的3、4分之一
-XX:+UseParNewGC :缩短minor收集的时间
-XX:+UseConcMarkSweepGC :缩短major收集的时间
jar命令
参数:
-c 创建新的归档文件
-t 列出归档目录和文件
-x 解压缩已归档的指定(或所有)文件
-u 更新现有的归档文件
-v 在标准输出中生成详细输出 / 提供更详细输出信息
-f 指定归档文件名 / 为压缩包指定名字
-m 包含指定清单文件中的清单信息
-e 为捆绑到可执行 jar 文件的独立应用程序
jar 命令打包实例
jar -cvfM0 custom.jar ./
如果有jar包嵌套,先打内层包,再打外层包。 最后是符合效果的。
jar报错 -bash: jar: command not found
是因为没有配置环境变量。
方案一:
配置环境变量。
方案二:
直接用java所在目录执行jar命令,
jar报报错 no manifest file found
一遍是少了M
jar -cvfM0 custom.jar ./
其他
易错点
-Xms,-Xmx 这2个参数可以直接写在后面,不要有空格。
例如:
# 正确写法
-Xms1024m
# 错误写法
-Xms 1024m