遇到一个问题:同一段代码在不同的程序中,有一个正常,一个异常。初步判断是jar包依赖冲突导致。
通过debug后下面的代码片段创建出的keyPairGenerator 对象的示例不一样。就是KeyPairGenerator的不同实现。
KeyPairGenerator keyPairGenerator = KeyPairGenerator.getInstance("ECDSA", "BC");
通过在debug中添加下面变量,找到keyPairGenerator示例使用的是哪个jar包。
keyPairGenerator.getClass().getProtectionDomain().getCodeSource().getLocation()
可以看到依赖了bcprov-jdk15on-1.38.jar版本。
通过同样的方式,在正常运行的那个程序中找到他依赖的版本是bcprov-jdk15on-1.54.jar。把依赖改为1.54问题解决。