我有一些使用專有sun * *。OperatingSystemMXBean的代碼,所以我對此非常小心。這段代碼爲什麼編譯,但運行時有ClassNotFoundException?
try {
_osBean = (com.sun.management.OperatingSystemMXBean) java.lang.management.ManagementFactory.getOperatingSystemMXBean();
}
catch (ClassCastException e) {
_osBean = null;
}
然而,當這個代碼在IBM JVM上運行,而不是ClassCastException
,我得到一個運行ClassNotFoundException
。爲什麼這個代碼能夠編譯得很好,如果該類不可用,以及JVM如何影響這樣的事情?
我想如果你用一個oracle編譯器編譯它並在IBM JVM上運行它,它會發生。 – assylias
**不要使用任何'com.sun。*'類。 – fge
@fge - 強詞。我寧願說,你必須小心,理解你的部署環境,並儘可能地優雅地回落。 –