-1

私はこのようなコードを持っています、

import javapasswordsdk.PSDKPassword;
import javapasswordsdk.PSDKPasswordRequest;
import javapasswordsdk.exceptions.PSDKException;

etc.............

以下のエラーが発生しています。javapasswordsdk.PSDKPassword を使用しています。javapasswordsdk.PSDKPasswordRequest を受け取りますが、javapasswordsdk.exceptions.PSDKException を受け取りません

これらすべてのクラスを 1 つの jar ファイルにまとめます。私の質問は、なぜそれが他にできないのかということです。

できるだけ早く明確にしてください。

 Exception in thread "main" java.lang.NoClassDefFoundError:javapasswordsdk/exceptions/PSDKException
    at beans.MigrateData.main(Unknown Source)
 Caused by: java.lang.ClassNotFoundException: javapasswordsdk.exceptions.PSDKException
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 1 more
4

3 に答える 3

1

私の推測では、あなたのbeans.MigrateDataクラスは 1 つの jar ファイルにあり、javapasswordsdkクラスは別の jar ファイルにあると思います。だからあなたはおそらく欲しい:

java -cp beans.jar:javapasswordsdk.jar beans.MigrateData

(または同様のもの)。

javapasswordsdk基本的に、実行時にクラスがクラスパス上にあることを確認する必要があります。コードをどのように実行しようとしているのか、またはどのようにパッケージ化されているのかはわかりません。したがって、上記は推測にすぎませんが、適切に調整できるはずです。

編集:どのように実行しているかがわかったので、問題は、クラスパスで間違ったセパレーターを使用していることです。Unixでは、エントリを区切るの:ではなく、次のように使用します。;

Windows: java -cp jar1;jar2;jar3
Unix:    java -cp jar1:jar2:jar3
于 2013-05-10T11:41:01.273 に答える
0

必要なすべての jar がClassPathにあることを確認してください。

Java 仮想マシンまたは ClassLoader インスタンスが (通常のメソッド呼び出しの一部として、または new 式を使用した新しいインスタンスの作成の一部として) クラスの定義にロードしようとしたときに、クラスの定義が見つからなかった場合にスローされます。

于 2013-05-10T11:41:52.597 に答える