解决tomcat和eclipse下的java.security.NoSuchAlgorithmException: Algorithm DES not available 和java.security.NoSuchAlgorithmException: Cannot find any provider supporting DES/ ECB/PKCS#5异常的方法:
一. 设置CLASSPATH
把cryptix-jce-api.jar、cryptix-jce-compat.jar、cryptix-jce-provider.jar三个JAR文件加入CLASSPATH中。
在桌面右击“我的电脑”,选择“属性”,选择“高级”选项卡,点击“环境变量”,在“系统变量”里新建“CLASSPATH”变量。将上述三个JAR文件添加到“CLASSPATH”中。注意用分号隔开。例如:
D:/jar/cryptix/cryptix-jce-api.jar;D:/jar/cryptix/cryptix-jce-compat.jar;D:/jar/cryptix/cryptix-jce-provider.jar;
二. 设置JAVA_HOME
在桌面右击“我的电脑”,选择“属性”,选择“高级”选项卡,点击“环境变量”,在“系统变量”里新建“JAVA_HOME”变量。里面填写JDK安装路径.如: D:/jdk
三. 设置security.provider
在$JAVA_HOME$/jre/lib/security/目录下,找到java.security ,用记事本或其他文本编辑工具打开,找到如下文字:
security.provider.1=sun.security.provider.Sun
security.provider.2=com.sun.net.ssl.internal.ssl.Provider
security.provider.3=com.sun.rsajca.Provider
security.provider.4=com.sun.crypto.provider.SunJCE
security.provider.5=sun.security.jgss.SunProvider
在其下面添加下面的文字
security.provider.6=cryptix.jce.provider.CryptixCrypto
四. 配置Tomcat
windows平台:
在$TOMCAT_HOME$/bin/目录下,找到catalina.bat文件,用记事本或其他文本编辑工具打开,找到如下文字:
shift
goto setArgs
:doneSetArgs
在其下面添加下面的文字(注意不要换行,各文件之间用分号隔开):
set CLASSPATH=%CLASSPATH%;D:/jar/cryptix/cryptix-jce-api.jar;D:/jar/cryptix/cryptix-jce-compat.jar;D:/jar/cryptix/cryptix-jce-provider.jar
Linux平台(注意不要换行,各文件之间用冒号隔开):
可在catalina.sh文件中的 # Add on extra jar files to CLASSPATH 后面加类似的语句
# Add on extra jar files to CLASSPATH
if [ -n "$JSSE_HOME" ]; then
CLASSPATH="$CLASSPATH":"$JSSE_HOME"/lib/jcert.jar:"$JSSE_HOME"/lib/jnet.jar:"$JSSE_HOME"/lib/jsse.jar
fi
CLASSPATH="$CLASSPATH":"$CATALINA_HOME"/bin/bootstrap.jar:"$CATALINA_HOME"/bin/commons-logging-api.jar:/opt/cryptix-jce-api.jar:/opt/cryptix-jce-compat.jar:/opt/cryptix-jce-provider.jar
四. 配置Eclipse.
在菜单栏,,选择“window”,选择“preferences”,“java”>>“Installed RREs” 点击“add”,选择上面JAVA_HOME目录下的jre,然后将这个jre前面的复选框选中。
注:本文章为techyang原创,转载请注明出处(http://blog.youkuaiyun.com/techyang)