2013-02-18 58 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下載

相關問題