Posted on 2009-03-24 11:45
Fingki.li 阅读(6266)
评论(2) 编辑 收藏 所属分类:
About linux
从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分析的利器。