Caused by: java.lang.SecurityException: Jurisdiction policy files are not signed by trusted sign...

最近开发项目时,把jdk环境从1.6切到1.7之后,项目正常启动,但是当进行业务处理时,就报这个错:

Caused by: java.lang.SecurityException: Jurisdiction policy files are not signed by trusted signers!

之前从没遇到过这个问题,于是上网谷歌百度,知道这个问题涉及到了JCE,JCE可能大家都不怎么熟悉。
JCE,Java Cryptography Extension,在早期JDK版本中,由于受美国的密码出口条例约束,Java中涉及加解密功能的API被限制出口,所以Java中安全组件被分成了两部分: 不含加密功能的JCA(Java Cryptography Architecture )和含加密功能的JCE(Java Cryptography Extension)。在JDK1.1-1.3版本期间,JCE属于扩展包,仅供美国和加拿大的用户下载,JDK1.4+版本后,随JDK核心包一起分发;

想了解JCA与JCE的API体系,点击下面链接:
http://87426628.blog.163.com/blog/static/606936182013104883902/

我的问题的出现是由于环境切到了jdk1.7,但是jce版本跟我的jdk版本不匹配。

解决方法

下载local_policy.jar 和 US_export_policy.jar

JDK6的下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jce-6-download-429243.html

JDK7的下载地址:
http://www.oracle.com/technetwork/java/javase/downloads/jce-7-download-432124.html

下载之后就是覆盖原文件
如果安装了JRE,将两个jar文件放到%JRE_HOME%\lib\security下覆盖原来文件,记得先备份。
如果安装了JDK,将两个jar文件也放到%JDK_HOME%\jre\lib\security下

然后,问题就解决了

转载于:https://my.oschina.net/u/2250363/blog/666845

你可能感兴趣的:(java,数据库)