2012年4月26日 星期四

觀察 JVM 讀取了哪些 CLASS

我們的環境中 JRE 是有被刪減過的,所以有時寫新功能時
會出現 ClassNotFoundException 或者是 NoClassDefFoundError 之類的錯誤訊息
通常這是表示 JVM 在函式庫中找不到指定的 CLASS。

為了要儘快發現少了哪些東西
可以在 tomcat 上(我們的環境是 web 的,所以 Java 是跑在 tomcat 上面)加參數
也就是去修改 /bin/catalina.sh。


先找到以下的內容

JAVA_OPT='......'

在前面加上 -verbose:

JAVA_OPT='-verbose ......'

下次執行 catalina.sh start 時,catalina.out 就會跑出一堆 loading 的訊息
表示目前 tomcat 讀到哪個 CLASS,用這些資訊去比對一下 JRE 就可以知道少了什麼了。

沒有留言: