linux(ubuntu)下使用jconsole

从JDK5开始就已经增加了对VM的监控功能jconsole,JDK1.6也有了进一步的改进。
然而对linux特别是Ubuntu用户来说,会碰到一些小问题。
在终端进入java_home/bin目录下,
# jconsole
结果报错如下:
Exception in thread "AWT-EventQueue-0" java.lang.NullPointerException

原因就是在ubuntu下用java写Swing应用程序时不能使用 SystemLookAndFeel。
实际上出现这个问题是因为swing的默认laf采用systemlaf,而Ubuntu里却没有定义这个laf。
一种很方便的解决方法就是把语言环境改成英文:
# export LANG=en
但对中文用户很不方便(尽管swing程序可以运行)。
另一种方法就是程序启动时加上jvm运行时参数,比如 运行jconsole :
# jconsole -J-Dswing.systemlaf=javax.swing.plaf.metal.MetalLookAndFeel

另外,jconsole对于hostname也有要求,如果执行:
# hostname -i
显时 127.0.0.1,则需要在 /etc/hosts中把127.0.0.1改成机器的外网IP。
这下,我们就又多了一个jvm分析的利器。

你可能感兴趣的:(linux(ubuntu)下使用jconsole)