linux(ubuntu)下使用jconsole
Posted on 2009-03-24 11:45 Fingki.li 閱讀(6281) 評論(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分析的利器。
然而對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分析的利器。