10

さて、私はJavaについてほとんど知らないと言います。私は弾力がある城の瓶を与えられ、それは私がこの任務を行うために必要なものを含むだろうと言われました。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)

コンパイルされたプログラムの実行に問題があるのはなぜですか?

4

1 に答える 1

6

プログラムを実行するには、次のように入力します。

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

これは、プログラムがコンパイル時だけでなく、実行時にクラスパスの一部として使用するライブラリも必要とするためです。

于 2012-04-13T01:33:34.647 に答える