报错Cannot resolve symbol 'bouncycastle'

Cannot resolve symbol ‘bouncycastle‘

Bouncycastle是一个Java的密码库,因为加入了jdk的第三方安全库,在使用的时候需要进行配置。缺少相应的配置会报错java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider,或者在IDEA下Cannot resolve symbol ‘bouncycastle‘。

解决方法BouncyCastle可以从www.bouncycastle.org下载(对应JDK版本的BouncyCastle)。

使用的是JDK1.8,所以下载对应的bcprov-jdk15on-161.jar from https://www.bouncycastle.org/latest_releases.html

  1. 查看/etc/profile下JAVA_HOME配置路径

    使用whereis java命令可以看到JAVA_HOME路径

1
java: /usr/bin/java /etc/java /usr/lib/java /usr/share/java
  1. 安装

在Windows中,找到Java的安装目录。例如:C:\ProgramFiles\Java\jdk1.8.0_38\jre\lib\ext目录下,把bcprov-jdk15on-161.jar文件放于其中。

  1. 配置安全属性文件

安全属性文件java.security位于和/lib/ext平行的另一个目录/lib/security下,它定义了当前可以使用的加密提供者。

1
2
3
security.provider.1=sun.security.provider.Sun

security.provider.2=sun.security.rsa.SunRsaSign

它表明加密提供者以及他们的优先级和访问时使用的名称。当需要用到一个加密算法时,虚拟机会依次访问这里列出的提供者,寻找想要的算法,并按这里的优先级顺序使用第一个找到的算法。在文件中插入新的提供者:

1
security.provider.x=org.bouncycastle.jce.provider.BouncyCastleProvider

4.在项目中导入相应jar包

  • Eclipse中:Right click on Project–>Properties–>Java Build Path–>Libraries tab–> Click on Add External JARs.. Select the path where you have the dowlnloaded bcprov-jdk15on-152.jar.
    Then click OK. That's it.
    
  • IDEA中:点击 File -> Project Structure(快捷键 Ctrl + Alt + Shift + s),点击Project Structure界面左侧的“Modules”显示下图界面;在 “Dependencies” 标签界面下,点击右边绿色的 “+”号,选择第一个选项“JARs or directories…”,选择相应的jar包,点“OK”,jar包添加成功。
0%