`
xidajiancun
  • 浏览: 457614 次
文章分类
社区版块
存档分类
最新评论

JVM命令行

 
阅读更多

JDK内置工具使用

一、javah命令(CHeaderandStubFileGenerator)

二、jps命令(JavaVirtualMachineProcessStatusTool)

三、jstack命令(JavaStackTrace)

四、jstat命令(JavaVirtualMachineStatisticsMonitoringTool)

五、jmap命令(JavaMemoryMap)

六、jinfo命令(JavaConfigurationInfo)

七、jconsole命令(JavaMonitoringandManagementConsole)

八、jvisualvm命令(JavaVirtualMachineMonitoring,Troubleshooting,andProfilingTool)

九、jhat命令(JavaHeapAnalyseTool)

十、Jdb命令(TheJavaDebugger)

十一、Jstatd命令(Java Statistics Monitoring Daemon)


1、介绍

用来查看基于HotSpotJVM里面中,所有具有访问权限的Java进程的具体状态,包括进程ID,进程启动的路径及启动参数等等,与unix上的ps类似,只不过jps是用来显示java进程,可以把jps理解为ps的一个子集。

使用jps时,如果没有指定hostid,它只会显示本地环境中所有的Java进程;如果指定了hostid,它就会显示指定hostid上面的java进程,不过这需要远程服务上开启了jstatd服务,可以参看前面的jstatd章节来启动jstad服务。

2、命令格式

jps[options][hostid]

3、常用参数说明

-q忽略输出的类名、Jar名以及传递给main方法的参数,只输出pid

-m输出传递给main方法的参数,如果是内嵌的JVM则输出为null

-l输出应用程序主类的完整包名,或者是应用程序JAR文件的完整路径。

-v输出传给JVM的参数。

-V输出通过标记的文件传递给JVM的参数(.hotspotrc文件,或者是通过参数-XX:Flags=<filename>指定的文件)。

-J用于传递jvm选项到由javac调用的java加载器中,例如,“-J-Xms48m”将把启动内存设置为48M,使用-J选项可以非常方便的向基于Java的开发的底层虚拟机应用程序传递参数。

4、服务器标识

hostid指定了目标的服务器,它的语法如下:

[protocol:][[//]hostname][:port][/servername]

protocol-如果protocolhostname都没有指定,那表示的是与当前环境相关的本地协议,如果指定了hostname却没有指定protocol,那么protocol的默认就是rmi

hostname-服务器的IP或者名称,没有指定则表示本机。

port-远程rmi的端口,如果没有指定则默认为1099

Servername-注册到RMI注册中心中的jstatd的名称。

5、使用示例

5.1、列出本地的Java进程

不带任何参数

fenglibin@libin:~$jps

11644Main

1947

12843Jps

-v参数

fenglibin@libin:~$jps-v

11644Main-agentlib:jdwp=transport=dt_socket,suspend=y,address=localhost:43467-Dfile.encoding=GBK

1947-Dosgi.requiredJavaVersion=1.5-XX:MaxPermSize=256m-Xms40m-Xmx512m

12858Jps-Denv.class.path=/home/fenglibin/java6/lib/dt.jar:/home/fenglibin/java6/lib/tools.jar::/usr/bin/libtool:/usr/bin/autoconf:/usr/local/BerkeleyDB.4.8/lib-Dapplication.home=/home/fenglibin/java6-Xms8m

-l参数

fenglibin@libin:~$jps-l

11644com.alibaba.china.webww.core.Main

12870sun.tools.jps.Jps

1947

5.2、列出远程的Java进程

jstatd章节,我们有通过:

rmiregistry2020&jstatd-J-Djava.security.policy=all.policy-p2020-nAlternateJstatdServerName

启动了名为AlternateJstatdServerNamejstatd服务,那么我们此时就可以通过该服务列出其有权限访问的Java进程。

fenglibin@libin:~$jps10.1.1.234:2020/AlternateJstatdServerName

29556Bootstrap

28671WSPreLauncher

2602RegistryImpl

18272Test

2603Jstatd

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics