web-dev-qa-db-fra.com

Pourquoi est-ce que je reçois un paquet javax.crypto n'existe pas

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? 

16
Mike Hogan

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"
22
Mike Hogan

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

8
user405837

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
0
Fabio Giaquinta