jdk常用命令

jdk常用命令_第1张图片1.jinfo命令

 

 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 指定 jaxws/jaxb 绑定文件或附加模式

                            (每个 都必须具有自己的 -b)

  -B 将此选项传递给 JAXB 模式编译器

  -catalog 指定用于解析外部实体引用的目录文件

                            支持 TR9401, XCatalog 和 OASIS XML 目录格式。

  -d 指定放置生成的输出class文件的位置

  -encoding 指定源文件所使用的字符编码

  -extension 允许供应商扩展 - 不按规范

                            指定功能。使用扩展可能会

                            导致应用程序不可移植或

                            无法与其他实现进行互操作

  -help 显示帮助

  -httpproxy:: 指定 HTTP 代理服务器 (端口默认为 8080)

  -keep 保留生成的class文件

  -p 指定目标程序包

  -quiet 隐藏 wsimport 输出

  -s 指定放置生成的源文件的位置

  -target 按给定的 JAXWS 规范版本生成代码

                            默认为 2.2, 接受的值为 2.0, 2.1 和 2.2

                            例如, 2.0 将为 JAXWS 2.0 规范生成兼容的代码

  -verbose 有关编译器在执行什么操作的输出消息

  -version 输出版本信息

  -wsdllocation @WebServiceClient.wsdlLocation 值

  -clientjar 创建生成的 Artifact 的 jar 文件以及

                            调用 Web 服务所需的 WSDL 元数据。

  -generateJWS 生成存根 JWS 实现文件

  -implDestDir 指定生成 JWS 实现文件的位置

  -implServiceName 生成的 JWS 实现的服务名的本地部分

  -implPortName 生成的 JWS 实现的端

你可能感兴趣的:(java)