我有一些使用专有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 - 强词。我宁愿说,你必须小心,理解你的部署环境,并尽可能地优雅地回落。 –