2013-02-18 14 views
14

Kiedy kompiluję klasę za pomocą javax.crypto.Mac pojawia się ten komunikat o błędzie?Dlaczego otrzymuję pakiet javax.crypto nie istnieje

pakiet javax.crypto nie istnieje

mogę go naprawić poprzez włączenie jre/lib/jce.jar w mojej kompilacji classpath.

Dlaczego plik jce.jar nie znajduje się w domyślnej ścieżce klas jdk? jre/lib/rt.jar znajduje się na ścieżce klas i zawiera inne pakiety javax, ale jce wydaje się specjalny?

+0

. Wystarczy wspomnieć, że ścieżka 'jre/lib' powinna znajdować się na twojej ścieżce tak czy owak. Jeśli to nie zostało uwzględnione, to nie zainstalowałeś java poprawnie na swoim komputerze. – mtk

+0

Użyłem instalatora Oracle. Informacje o mojej wersji to wersja Java "1.7.0_10" Java Runtime Environment (build 1.7.0_10-b18) 64-bitowa maszyna wirtualna Java HotSpot ™ (wersja 23,6-b04, tryb mieszany) –

+0

moja koleżanka ma dokładnie ten sam problem z openjdk na ubuntu. –

Odpowiedz

20

OK, to był błąd z mojej strony. Plik Ant używałem do kompilacji kodu miał ten atrybut zadania javac:

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

Doh. Możesz dodać słoik JCE w ten sposób:

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

Uwaga! Ta klasa jest zawarta tylko w jdk z Oracle. Oznacza to, że Twój program wygrał; t być przenośny w różnych jdk (np. Openjdk) Zaleca się używanie tej biblioteki na zewnątrz, można ją pobrać z here