我想在我的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的依赖。
答案 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起)。