支持包“com.ibm.misc”及其类

时间:2013-01-18 14:43:09

标签: java xpages lotus-notes

我想在我的XPage中解码我使用sun.misc.BASE64Decoder类的Base64字符串。但根据Java developer should not write programs that call 'sun' packages。当我偶然发现com.ibm.misc.BASE64Decoder时,我正在寻找另一种选择。它对我有效,结果与sun.misc.BASE64Decoder相同。所以我想知道开发人员是否可以使用这个包及其类?还是像“太阳”包一样避免它?

我也知道我可以将Apache Commons用于Base64,但我希望尽量减少对外部JAR的依赖。

1 个答案:

答案 0 :(得分:4)

使用com.ibm.misc.BASE64Decoder,您将遇到与sun.misc.BASE64Decoder完全相同的问题:它是一个内部类,仅存在于特定的JVM实现中,在本例中是IBM的JVM。

请注意,Oracle的JVM中没有com.ibm.misc.BASE64Decoder,因此如果您使用此类,则您的程序无法在Oracle的JVM上运行;它会因NoClassDefFoundError而失败。

您可以使用mre在其注释中引用的方法,该注释位于类javax.xml.bind.DatatypeConverter中 - JAXB API的一部分,它是标准Java API的一部分(自Java SE 6起)。