为什么我得到包javax.crypto不存在

当我使用javax.crypto.Mac编译一个类时,我收到此错误消息?

包javax.crypto不存在

我可以通过在我的编译类路径中包含jre / lib / jce.jar来解决它。

为什么jce.jar不在默认的jdk类路径上? jre / lib / rt.jar在classpath上,包含其他javax包,但是jce看起来很特别?

好的,这对我来说是个错误。 我用来编译代码的Ant文件在javac任务上有这个属性:

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

卫生署。 您可以像这样添加JCE jar:

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

谨防! 这个类只包含在oracle的jdk中。 这意味着你的程序赢了;可以在不同的jdk之间移植(例如openjdk)最好在外部使用这个lib,它可以从这里下载