2013-02-18 9 views
14

Wenn ich eine Klasse mit javax.crypto.Mac kompilieren bekomme ich diese Fehlermeldung?Warum bekomme ich Paket javax.crypto nicht existiert

Paket javax.crypto nicht

ich es nicht gibt beheben jre/lib/jce.jar in meinem Kompilierung Classpath, indem.

Warum ist jce.jar nicht auf dem Standard-Klassenpfad jdk? jre/lib/rt.jar befindet sich im Klassenpfad und enthält andere Javax-Pakete, aber jce scheint etwas Besonderes zu sein.

+0

heruntergeladen werden. Nur um zu erwähnen, 'jre/lib' Pfad sollte in Ihrem Pfad sein Sowieso. Wenn dies nicht enthalten war, haben Sie Java nicht richtig auf Ihrem Computer installiert. – mtk

+0

Ich habe das Oracle Installer verwendet. Meine Versionsinformationen sind Java-Version "1.7.0_10" Java (TM) SE Laufzeitumgebung (Build 1.7.0_10-b18) Java HotSpot (TM) 64-Bit-Server-VM (Build 23.6-b04, gemischter Modus) –

+0

mein Kollege hat genau das selbe problem mit openjdk auf ubuntu. –

Antwort

20

OK, das war ein Fehler meinerseits. Die Ant-Datei Ich war mit dem Code zu kompilieren hatte dieses Attribut auf der javac Aufgabe:

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

Doh. Sie können das JCE-Glas wie folgt hinzufügen:

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

Vorsicht! Diese Klasse ist nur in der jdk von Oracle enthalten. Das bedeutet, dass Ihr Programm unter verschiedenen jdk (zB openjdk) portabel ist. Es ist vorzuziehen, diese Lib extern zu verwenden, sie kann von here