小径分叉的花园

Khotyn 的网志,记录生活,记录想法

10 Jul 2013

JDK bin 目录下的常见命令

作为一个 Java 开发,每天都需要和 JDK 打交道,而每一个 Java 开发都应该熟悉 JDK bin 目录下提供的一些命令。

java 和 javac

在 JDK bin 目录下众多的命令中,最常用的当然就是 java 和 javac 了,java 命令无需多言,就是启动一个 Java 虚拟机,而 javac 命令当然就是编译 java 文件了,这里面多说一句,如果你在用 javac 编译一个 java 文件的时候用 jps(后面会提到)查看当前的 java 虚拟机进程,你会看到这样的内容:

52639 com.sun.tools.javac.Main -Dapplication.home=/Library/Java/JavaVirtualMachines/jdk1.7.0_17.jdk/Contents/Home -Xms8m

看到这行输出相比大家已经意识到了,其实 javac 也是用 java 实现的,是不是有一点自举的味道?哈哈。

jps

除了 java 和 javac,我平时用到最多的命令就是 jps,这个命令顾名思义,就是 ps 的 java 版本,列出 java 虚拟机的进程,单单执行 jps 这个命令,输出非常简单

52427 RemoteMavenServer
52408
52761 Jps

前面是 java 虚拟机的进程号,后面是 java 程序 main 函数所在类的类名(眼尖的朋友可能已经注意到了,这个输出里面有一个 Jps,是的,没错,jps 也是用 Java 实现的)。很多时候,这么简单的输出可能不能满足我们的需求,你可以加上特定的参数来获得更多的信息:

  • -l:输出全限定类名。
  • -v:输出虚拟机的启动参数。
  • -q:只输出进程 ID,不输出其他内容。

我平时使用 jps 都会加上 -l 和 -v(jps -lv),这样输出的信息基本上就能满足日常的需求了,知道了虚拟机的入口类是什么,也知道启动虚拟机的参数,够了。

Categories