扫二维码与项目经理沟通
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流
java小工具都有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。
成都创新互联是网站建设专家,致力于互联网品牌建设与网络营销,专业领域包括做网站、成都网站建设、电商网站制作开发、小程序开发、微信营销、系统平台开发,与其他网站设计及系统开发公司不同,我们的整合解决方案结合了恒基网络品牌建设经验和互联网整合营销的理念,并将策略和执行紧密结合,且不断评估并优化我们的方案,为客户提供全方位的互联网品牌整合方案!
常做Java开发的朋友,不管是做纯后端开发,还是做Java Web开发,有一些操作你一定会经常遇到。比如:
我在工作中见过许多人,想要查看当前正在运行的Java应用时,会通过进程管理器(Windows下),或者使用
ps -ef | grep java(在Linux下使用命令行)。通过这些来获取运行的Java应用列表,以及对应的PID(进程ID)。
而查看堆内存,可能会下载一些第三方的工具等。
其实,JDK中已经默认自带了一些小工具,非常好用,使用方便快捷。不信你看下面这些:
jps (Java Virtual Mathine Process Status Tool)
从名称可以看出个大概。主要是把Java进程的状态列出来。
这个命令可以指定hostid,从而列出远程主机的Java进程。
这个命令有几个参数,我比较常用的有
-l 输出应用程序主类的完整包名,或者是应用程序JAR文件的完整路径。
-v 输出传给JVM的参数。
一般通过jps -lv就可以把本地的所有Java进程,以及传给JVM的参数,运行的文件位置都列出来。这样,一个命令上面前两个问题就解决了。
2. jinfo (Java Configuration Info)
主要用来查看Java进程使用的一些配置参数,比如设置的堆内存有多大,是否允许在OOM产生的时候dump出堆信息等。
除此之外,该命令还可以动态更改配置的项,比如上面提到的OOM dump这个开关是关着的,那可以在运行的时候再打开它。
3. jstate (Java Virtual Machine Statistics Monitoring Tool)
这个命令选项很多,根据不同的选项,可以统计你感兴趣的不同的数据,比如你对JVM的垃圾回收数据感兴趣,可以直接通过指定 -gc 来查看,而更常用的一个选项是 -gcutil 可以统计新生代,老年代垃圾收集的情况。
当然,JDK自带的小工具还有很多,以上面这几个工具为例,其中后两者在执行时,都需要先知道JVM的PID之后,才能执行,毕竟这些工具需要了解你要查看哪个JVM。
下面我们来简要了解下jps的大概实现原理。
每个JVM在启动后,其本质上依然是操作系统的一个进程,都会存在一个PID值与之对应。而JVM内部的实现,则是在每次启动之后,在本地的一个目录内创建一个以当前JVM的PID为文件名的文件,文件路径和操作系统有关,我的windows7下路径是
C:\Users\{这里是你的用户名}\AppData\Local\Temp\hsperfdata_{这个也是你的用户名}
在这个目录下,所有你下在运行的JVM对应的PID文件都在这里了。
同样的道理,如果你曾经用过JConsole(这也是个JDK自带的小工具),可能马上就有感觉了。因为它也是通过读这个目录下的文件信息得到需要的数据,你看下面这个Jconsole新建连接的图,这些PID刚好这上面的文件对应是不是。
看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注创新互联行业资讯频道,感谢您对创新互联的支持。
我们在微信上24小时期待你的声音
解答本文疑问/技术咨询/运营咨询/技术建议/互联网交流