jinfo命令主要查看虚拟机配置参数信息,也可用于调整虚拟机的配置参数。jinfo不仅可以查看运行时某一个Java虚拟机参数的实际取值, 甚至可以在运行时修改部分参 数,并使之立即生效。 但是,并非所有参数都支持动态修改。参数只有被标记 manageable的flag可以被实时修改。其实,这个修改能力是 极其有限的。
格式:jinfo [option] pid
jinfo -sysprops pid 查看进程配置信息
jinfo -flags pid 查看曾经赋过值的参数值
jinfo -flag <具体参数> pid: 查看具体参数的值 ex:jinfo -flag MaxHeapSize pid
修改参数格式:
布尔类型: jinfo -flag +-参数 pid
非布尔类型: jinfo -flag 参数名=参数值 pid
2.jmap命令
主要用于监视进程运行中的jvm物理内存的占用情况。该进程内存中,所有对象的情况:产生了哪些对象,对象数量
1) jmap -heap [pid] 查看当前进程堆内存信息
2)jmap -histo [pid]列出当前内存中存活对象的柱状图,也就是对象个数以及占用内存信息(平时参考意义不是很大,但是如果发生内存泄露等问题时,还有有参考价值的。)
3)jmap -clstats [pid] 主要展示ClassLoader信息
4)jmap -dump:format=b,file=heapdump.phrof [pid] 这个比较有用,可以打印出当前进程的dump信息
3.jstat命令
jstat命令利用JVM内建的指令对java应用程序的资源和性能进行实时的命令行的监控,包括对进程的ClassLoader、compile、gc等情况。
格式:jstat -
参数:
复制代码
-class:统计class loader行为信息
-compile:统计编译行为信息
-gc:统计jdk gc时heap信息
-gccapacity:统计不同的generations(包括新生区,老年区,permanent区)相应的heap容量情况
-gccause:统计gc的情况,(同-gcutil)和引起gc的事件
-gcnew:统计gc时,新生代的情况
-gcnewcapacity:统计gc时,新生代heap容量
-gcold:统计gc时,老年区的情况
-gcoldcapacity:统计gc时,老年区heap容量
-gcpermcapacity:统计gc时,permanent区heap容量
-gcutil:统计gc时,heap情况
复制代码
1) jstat -gc [pid] [
-gc命令查看当前进程的GC情况,包括老年代和新生代,这里的interval默认单位是ms,count是总打印次数
2) jstat -gcutil [pid] [
4.jstack
jstack这个命令平时我们应该用的比较多。主要用来查看当前进程的线程信息
1)jstack [pid] 直接查看进程线程信息
这样直接使用的话,会把进程的线程信息直接打印到控制台,一般来说,都打印到一个文件里
ex:.\jstack.exe 15276 > stack.txt
5.javap
查看 Java 字节码反编译的源文件
6.jps
jps 是用来查询当前所有进程 pid 的,命令的用法如下图所示:
7.jcmd
jcmd 可以查看 JVM 信息,常用的命令内容如下:
8.jhat
jhat 分析 Java 堆的命令,可以将堆中对象以 html 的形式显示出来,支持对象查询语言 OQL,命令内容如下:
8.wsgen
wsgen 是在JDK的bin目录下的一个exe文件(Windows版),该命令的主要功能是用来生成合适的JAX-WS。它读取Web Service的终端类文件,同时生成所有用于发布Web Service所依赖的源代码文件和经过编译过的二进制类文件。这里要特别说明的是,通常在Web Service Bean中用到的异常类会另外生成一个描述Bean,如果Web Service Bean中的方法有申明抛出异常,这一步是必需的,否则服务器无法绑定该对像。此外,wsgen 还能辅助生成WSDL和相关的xsd文件。wsgen 从资源文件生成一个完整的操作列表并验证web service是否合法,可以完整发布。
命令参数说明:
-cp 定义classpath
-r 生成 bean的wsdl文件的存放目录
-s 生成发布Web Service的源代码文件的存放目录(如果方法有抛出异常,则会生成该异常的描述类源文件)
-d 生成发布Web Service的编译过的二进制类文件的存放目录(该异常的描述类的class文件)
范例: wsgen -cp ./bin -r ./wsdl -s ./src -d ./bin -wsdl org.jsoso.jws.server.Example
9.wsimport
wsimport也是在JDK的bin目录下的一个exe文件(Windows版),主要功能是根据服务端发布的wsdl文件生成客户端存根及框架,负责与Web Service 服务器通信,并在将其封装成实例,客户端可以直接使用,就像使用本地实例一样。对Java而言,wsimport帮助程序员生存调用web service所需要的客户端类文件.java和.class。要提醒指出的是,wsimport可以用于非Java的服务器端,如:服务器端也许是C# 编写的web service,通过wsimport则生成Java的客户端实现。
命令参数说明:
复制代码
-b
(每个
-B
-catalog
支持 TR9401, XCatalog 和 OASIS XML 目录格式。
-d
-encoding
-extension 允许供应商扩展 - 不按规范
指定功能。使用扩展可能会
导致应用程序不可移植或
无法与其他实现进行互操作
-help 显示帮助
-httpproxy:
-keep 保留生成的class文件
-p
-quiet 隐藏 wsimport 输出
-s
-target
默认为 2.2, 接受的值为 2.0, 2.1 和 2.2
例如, 2.0 将为 JAXWS 2.0 规范生成兼容的代码
-verbose 有关编译器在执行什么操作的输出消息
-version 输出版本信息
-wsdllocation
-clientjar
调用 Web 服务所需的 WSDL 元数据。
-generateJWS 生成存根 JWS 实现文件
-implDestDir
-implServiceName
-implPortName