Lorsque je compile une classe à l'aide de javax.crypto.Mac, je reçois ce message d'erreur?
le paquet javax.crypto n'existe pas
Je peux le réparer en incluant jre/lib/jce.jar dans mon classpath de compilation.
Pourquoi jce.jar ne figure-t-il pas sur le chemin de classe jdk par défaut? jre/lib/rt.jar est sur le chemin de classe et inclut d'autres packages javax, mais jce semble spécial?
OK, c'était une erreur de ma part. Le fichier Ant que j'utilisais pour compiler le code avait cet attribut sur la tâche javac
:
bootclasspath="${Java.home}/lib/rt.jar"
Doh. Vous pouvez ajouter le pot JCE comme ceci:
bootclasspath="${Java.home}/lib/rt.jar:${Java.home}/lib/jce.jar"
Il faut se méfier! Cette classe est uniquement incluse dans le jdk d'Oracle. Cela signifie que votre programme ne sera pas portable entre différents jdk (par exemple, openjdk) Il est préférable d’utiliser cette bibliothèque en externe, elle peut être téléchargée à partir de ici
Cela a fonctionné pour moi, j'ai téléchargé le fichier Zip et collez ces 3 fichiers dans C:\Program Files\Java\jdk1.7.0_11\jre\lib\ext
comme expliqué dans jce-1_2_2/jce1.2.2/INSTALL.html
dans le fichier Zip.
jce1_2_2.jar
US_export_policy.jar
local_policy.jar