环境
- JAVA_HOME:配置JAVA的根目录,便于其他地方直接使用
- PATH:增加JAVA_HOME/bin目录,使java/bin目录下的命令可以直接访问,不加也可以,但需要带目录访问
CLASSPATH: 这个配置1.5版本以后就没用了.可以不配置
配置方案
- 大部分都会把JAVA_HOME和PATH都配置到公共的profile里,如果有冲突(一个服务器上有多版本jdk使用)的情况下,使用其他两种方案
- 自建用户下的.bath_profile内设置
- 启动脚本里设置
示例
export JAVA_HOME=/usr/share/jdk1.7.0_75
export PATH=$JAVA_HOME/bin:$PATH
自带工具
常用工具
- jstack
- jstack可以打印出Java堆栈信息,用于检查当前线程情况,比如死锁,线程执行慢等线程问题
- jps
- jstat
- 可以监控类的加载及卸载情况以及内存和gc情况,主要用于内存和gc问题的排查分析
- jstat -gc -h5 3653 1000
- jmap
- 输出当前某实例的对象情况,用于内存分析
- jmap -histo pid |head -n 20 ##查看占用内存最多的对象
- jmap -dump:format=b,file=dump.tmp 3653 导出dump文件详细分析
- jinfo
其他工具
- javah
- 用于根据JAVA本地方法,生成对应的c语言头文件及相应的stub文件的命令
- jconsole
- GUI监视工具,可以以图表化的形式显示各种数据。并可通过远程连接监视远程的服务器VM,一般只用于本地使用
- jvisualvm
- jvisualvm同jconsole都是一个基于图形化界面的
- jhat
- Jhat用于对JAVA heap进行离线分析的工具,离线一般用MAT
- mac版本mat
- jdb
- 用来对core文件和正在运行的Java进程进行实时地调试,基本用不上,一般都用ide来调试
- javap
- JDK自带的反汇编器,可以查看java编译器为我们生成的字节码