在JDK的bin目录下有许多java小工具可以用于编译,运行以及调试Java程序或监控JVM的运行。在习惯于在Window下使用Eclipse等IDE工具开发的程序员来说,可能bin目录下的很多工具都很少使用。但是如果是运行在Linux下的应用程序并且是命令行模式运行的话,很多时候使用JDK提供的一些工具可以给开发人员带来很多便利。本文总结了在实际开发中我们可能接触到或需要掌握的一些小工具的基本用法。对于像java,javac,javadoc这样的工具可能更多的时候不需要我们掌握,因此本文也只是提供基本用法。但是对于像jps,jdb等这样一些debug或监控工具,对于在linux下的命令行模式下调试以及监控Java应用程序很有用,因此重点介绍。
注意:所有的这些工具的使用的前提是已经配置和Path环境变量
1. javac
很多第一次接触java的开发者写得第一个helloworld程序使用的第一个编译器估计就是
javac [ options ] [ sourcefiles ] [ classes ] [ @argfiles ]
最简单的用法是:
javac 'your sourcefile name' 'your class filename'
比如我编译HelloWorld.java这个文件
javac HelloWorld.java
这样就会在这个源文件目录下生成一个HelloWorld.class文件,我们也可以一次编译多个,语法是:
javac source1.java source2.java source3.java
实际开发中,文件数量,包数量已经文件关系比这个复杂得多。而且我们希望生成的class文件和源文件是分开的。这就需要使用到这个工具的选项了。
想要javac有哪些选项可以用,最简单的方式就是输入:
javac -help
(
)
事实上,作为一般开发者,根本不需要使用javac,他们只要将写好的源码提交到svn,会有构建工具自动打包编译测试发布的
实际开发中,假如要用到这个工具,记的javac -help
2. java
java工具用于启动一个java应用程序,这个java应用程序必须要与入口函数main方法。这个工具的语法是
java [ options ] -jar file.jar [ arguments ]
我们也可以通过java -help来查看这个工具的选项和用法。
实际开发中,一般会写一个.sh脚本调用这个工具来启动应用程序,无需开发者手动来启动。关于如何写.sh启动脚本,后面有时间新开一篇博文讲解。
3. jar
jar这个工具用于打包、更新、解包java应用程序。实际开发中,我们都会将应用程序打包成一个jar包来运行,jar会将全部class文件以及资源文件,配置文件放到一个文件里打个包(有的说是压缩,事实上这个工具仅仅是打包,并不包含压缩操作)。创建一个jar文件常用语法如下:
jar c[v0M]f jarfile [-C dir] inputfiles [-Joption]
jar c[v0]mf manifest jarfile [-C dir] inputfiles [-Joption] [-e entrypoint]
jar c[v0M] [-C dir] inputfiles [-Joption]
jar c[v0]m manifest [-C dir] inputfiles [-Joption]
这里的c就是创建的意思,jarfile是要打包的jar文件名,-C临时改变输入文件源,-J指定运行参数,比如指定初始堆栈和最大堆栈大小等。参数和-J之间不能含有空格。实际开发中,这一步骤也是写在脚本中,一般不需要手动调用。
4. javadoc
javadoc是JDK提供给程序员的一个文档生成工具。这个工具我觉得是java比C/C++在文档化方面先进的地方。只要按照正确的格式在代码中写上对应的注释,程序写完后,使用这个工具就可以自动生成HTML样式的文档。比如JDK API的文档就是使用这个工具生成的。要生成类似文档的注释语法可以参考链接中的文档或直接看看JDK中的注释。这个工具的基本语法是:
javadoc [ options ] [ packagenames ] [ sourcefilenames ] [ -subpackages pkg1:pkg2:... ] [ @argfiles ]
这个工具只会将"*.jav