2013-02-18 57 views
14

当我使用javax.crypto.Mac编译一个类时,我收到此错误消息?为什么我获取软件包javax.crypto不存在

包javax.crypto中不存在

我可以通过在我的编译类路径中的jre/lib目录/ jce.jar修复它。

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

+0

只需要提一下,'jre/lib'路径应该在你的路径中无论如何。如果没有包含,那么你的机器上没有正确设置java。 – mtk 2013-02-18 11:54:28

+0

我使用了oracle安装程序。我的版本信息是Java版本“1.7.0_10” Java™SE运行时环境(内部版本1.7.0_10-b18) Java HotSpot™64位服务器虚拟机(版本23.6-b04,混合模式) – 2013-02-18 12:03:20

+0

我的同事在Ubuntu上有与openjdk完全相同的问题。 – 2013-02-18 12:08:38

回答

20

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

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

Doh。你可以像这样添加JCE罐子:

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

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

相关问题