2012-04-13 17 views
9

De acuerdo, ahora diré que sé muy poco sobre Java. Me dieron el Bouncy Castle Jar y le dije que contendría lo que necesitaba para hacer esta tarea. El archivo Jar es bcprov-jdk15on-147.jar. También estoy haciendo esto en una máquina Unix mantenida por mi escuela, así que no puedo entrar y jugar con todos los archivos Java.Problemas para integrar BouncyCastle Jar

Cuando compilo mi clase usando javac (específicamente utilizo el comando javac -classpath bcprov-jdk15on-147.jar encrypt.java), que compila sin error, pero cuando voy a ejecutar el programa después usando el comando java encrypt, me sale este mensaje de error:

Exception in thread "main" java.lang.NoClassDefFoundError: org/bouncycastle/jce/provider/BouncyCastleProvider 
Caused by: java.lang.ClassNotFoundException: org.bouncycastle.jce.provider.BouncyCastleProvider 
at java.net.URLClassLoader$1.run(URLClassLoader.java:200) 
at java.security.AccessController.doPrivileged(Native Method) 
at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276) 
at java.lang.ClassLoader.loadClass(ClassLoader.java:251) 
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) 

El archivo My Jar se encuentra en mi carpeta principal con todos mis otros archivos, por si acaso tiene que ir a un lugar especial y eso es lo que no hice.

Cuando hago java -classpath bcprov-jdk15on-147.jar encrypt Este es el error que consigo:

Exception in thread "main" java.lang.NoClassDefFoundError: encrypt 
Caused by: java.lang.ClassNotFoundException: encrypt 
    at java.net.URLClassLoader$1.run(URLClassLoader.java:200) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.net.URLClassLoader.findClass(URLClassLoader.java:188) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306) 
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:276) 
    at java.lang.ClassLoader.loadClass(ClassLoader.java:251) 
    at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319) 

por qué estoy teniendo problemas para ejecutar el programa compilado?

Respuesta

6

Tipo esto para ejecutar el programa:

java -classpath bcprov-jdk15on-147.jar:. encrypt 

Eso es debido a que su programa también tiene que tener ninguna biblioteca que utiliza como parte de la ruta de clase en el momento de correr, no sólo en tiempo de compilación.

+0

Lo probé y obtuve el siguiente mensaje de error: – user1174511

+1

¡Ajá !. Fue un problema de classpath. ¿Y qué es este "error ligeramente diferente" que está recibiendo ahora? Actualicé mi respuesta para también tener en cuenta el classpath local, inténtelo de nuevo. –

+0

¡Ah! Eso lo hizo! ¡Gracias! – user1174511

Cuestiones relacionadas