IBM JDK和SUN JDK的差异处理一例
来源:互联网 发布:淘宝销售排行榜 编辑:程序博客网 时间:2024/04/29 13:50
source: http://blog.csdn.net/xiongzk/article/details/8102946
最近在一个加密应用中有如下一行代码:
Security.addProvider(new com.sun.crypto.provider.SunJCE());
一看就知道,这用的是SUN JDK 的类。很明显的问题是,如果移植都IBM的JDK上,是编译不过的。当然我们也可以针对IBM的JDK做一个版本,把上面的代码改成如下:
Security.addProvider(new com.ibm.crypto.provider.IBMJCE());
这样确实可以解决移植的问题,但是只为一行代码的差异就做一个新的版本,有点小题大做了。而且这样做的代价是在你以后的开发维护中要同时对两个版本做修改,工作量相当于是增加了一倍。其实我们可以把上面的代码合成如下:
String jdkvs=System.getProperty( "java.vm.vendor");//
if(null!=jdkvs && jdkvs.startsWith("IBM")){
try {
Security.addProvider((Provider)Class.forName("com.ibm.crypto.provider.IBMJCE").newInstance());
} catch (IllegalAccessException e) {
/ / TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}else{
try {
Security.addProvider((Provider)Class.forName("com.sun.crypto.provider.SunJCE").newInstance());
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
- IBM JDK和SUN JDK的差异处理一例
- IBM JDK和SUN JDK的差异处理一例
- IBM-JDK与Sun-JDK加密算法提供者差异
- Sun JDK 不兼容 IBM JDK 备忘录
- Andorid sun-java5-jdk 和 sun-java6-jdk的安装
- Sun JDK监控和故障处理工具.
- Sun JDK 监控和故障处理工具
- Random随机数某一时刻生成相同数问题(IBM JDK和SUN JDK差矣造成)
- IBM JDK与SUN JDK的区别——java.io.File
- Sun JDK监控和故障处理工具:jps
- Jdk故障一例处理
- java-jdk 与 sun-jdk 的默认设置
- sun-java6-jdk的问题
- JDK下载的Sun官网
- Sun jdk、Open jdk、Icedtea jdk 之间的关系
- IBM JDK
- 微软的ie和sun的jdk冲突,网页一片空白
- 在linux系统上安装sun的JDK和tomcat
- 在.NET使用JSON作为数据交换格式
- 一个合格的程序员应该读的30本书
- 分享几句很实在的话~程序要须看!
- DropDownList各种字段
- 全面阐述overflow:hidden属性
- IBM JDK和SUN JDK的差异处理一例
- android实现延时执行的方法
- Intent
- WIndow服务操作
- Android 上从外部应用注入按键事件流程分析
- 程序的图标不能正常显示了,怎么办
- mac ndk 环境配置
- 问题解决方法学
- 刘未鹏:怎样花两年时间去面试一个人