好的,我现在要说我对Java知之甚少。我得到了Bouncy Castle Jar,并告诉我将包含我需要做的任务。 Jar文件是bcprov-jdk15on-147.jar
。我也是在我学校维护的Unix机器上做这个,所以我不能进去玩所有的Java文件。
当我使用Javac编译我的类(特别是我使用命令javac -classpath bcprov-jdk15on-147.jar encrypt.java
)时,它编译时没有错误,但是当我使用命令java encrypt
继续运行程序时,我收到此错误消息:
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)
我的Jar文件位于我的主文件夹中,包含我的所有其他文件,以防万一它必须去特别的地方,这就是我没有做的。
当我做java -classpath bcprov-jdk15on-147.jar encrypt
这是我得到的错误:
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)
为什么我在运行已编译的程序时遇到问题?
答案 0 :(得分:6)
键入以运行程序:
java -classpath bcprov-jdk15on-147.jar:. encrypt
这是因为你的程序在运行时还需要有任何库作为类路径的一部分,而不仅仅是在编译时。