It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center




7年前关闭。




我有这样的代码,
import javapasswordsdk.PSDKPassword;
import javapasswordsdk.PSDKPasswordRequest;
import javapasswordsdk.exceptions.PSDKException;

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

我得到以下错误,它正在使用javapasswordsdk.PSDKPassword;
javapasswordsdk.PSDKPasswordRequest,但不接受javapasswordsdk.exceptions.PSDKException

所有这些类都放在一个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

最佳答案

我的猜测是,您的beans.MigrateData类位于一个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

10-08 13:42