前辈说,java的基本功的好坏,一个方面要看是否能熟练使用jdk bin下的工具使用情况。
自己整理一下使用的工具。
■ javac
一个编译java的工具,进入java所在文件的路径后,javac XXX.java
■ java
java XXX 执行生成的字节码文件。
■ jar
打jar包用的,现在一般都用eclipse等这种工具,直接打jar包
■ javadoc
生成java的doc文档。现在一般都用eclipse等这种工具,直接可以生成,不用单独去敲这个命令。
■ jps
它是java process 的缩写,就是查看当前java的启动的进程。注意,显示的是java启动的进程,并非操作系统的进程。
使用方法,在控制台中直接 jps 就行。
p.s.我在实际操作中遇到个问题,这边运行着java程序,另一边敲下了jps,但是却什么也没有。这是为什么呢?后来我查了资料找到了原因。在 Win32 系统上,每个 java 进程启动之后都在 %TMP%\hsperfdata_user ( user 为当前登录用户名)目录下建立一个以该 java 进程 pid 为文件名的文件,用以记录该 java 进程的一些信息。而 jconsole 和 jps 正是利用这些文件来获取当前系统中 java 进程的信息的。如果该目录位于 FAT 文件系统下,或者位于 NTFS 文件系统下,但当前用户对%TMP%\hsperfdata_user目录的访问权限不足,无法创建和写入该文件,jconsole 和 jps 就抓瞎了。
解决办法:
在启动java程序的时候添加一个参数即可:
-XX:+PerfBypassFileSystemCheck
■ jconsole
它是java内置的性能分析器。你可以轻松的使用它,来监控java程序性能和跟踪java中的代码。
在使用Eclipse的时候,为了使用jconsole,需要配置一些参数,程序的启动参数如下:
-Djava.rmi.server.hostname=XXX.XXX.XXX.XXX ip地址
-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=8011 端口号,随便
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
之后,启动程序。接下来,cmd命令行中,调用jconsole,接下来,输入ip地址:端口号,点击连接就可以了。
在这里,推荐一篇博客,里面对jconsole有更详细的介绍,讲解的比我好,我就不在这里多说了。
http://jiajun.iteye.com/blog/810150
■JVisualVM
它是集成了多个jdk命令的免费可视化工具,它可以被单独下载,但是jdk的bin下,已经安装好了。可以直接使用。
它里面有丰富的插件,要想使用JConsole等一些功能,需要下载插件。各版本最新的下载中心:https://visualvm.github.io/pluginscenters.html
设置下载中心的方法:Tools -> Plugins -> Settings添加最新的插件中心。
推荐一个博客:http://jiajun.iteye.com/blog/1180230
■JMAP
生成java 对内存统计数据的工具。假设,我们在lunix下,无法使用图形界面分析,这时使用jmap将堆内存等统计数据导入后,再有其他可视化工具进行分析。
-dump:[live,]format=b,file=<filename>
e.g. jmap -dump:format=b,file
=output.bin
其它的工具,未完待续。。。