Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Why am I getting package javax.crypto does not exist

When I compile a class using javax.crypto.Mac I get this error message?

package javax.crypto does not exist

I can fix it by including jre/lib/jce.jar in my compile classpath.

Why is jce.jar not on the default jdk classpath? jre/lib/rt.jar is on the classpath, and includes other javax packages, but jce seems special?

like image 724
Mike Hogan Avatar asked Feb 18 '13 11:02

Mike Hogan


2 Answers

OK, this was a mistake on my part. The Ant file I was using to compile the code had this attribute on the javac task:

bootclasspath="${java.home}/lib/rt.jar" 

Doh. You can add the JCE jar like this:

bootclasspath="${java.home}/lib/rt.jar:${java.home}/lib/jce.jar"
like image 170
Mike Hogan Avatar answered Sep 27 '22 19:09

Mike Hogan


Beware! This class is only included in the jdk from oracle. That means your program won;t be portable among different jdk (eg openjdk) It is preferable to use this lib externally, it can be downloaded from here

like image 27
user405837 Avatar answered Sep 27 '22 19:09

user405837