我有这样的代码,
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
答案 0 :(得分:1)
我的猜测是你的beans.MigrateData
类在一个jar文件中,而javapasswordsdk
类在另一个jar文件中。所以你可能想要:
java -cp beans.jar:javapasswordsdk.jar beans.MigrateData
(或类似的东西)。
基本上,您需要确保javapasswordsdk
类在执行时位于类路径上。我们真的不知道你是如何运行你的代码或它是如何打包的,所以上面只是一个猜测 - 但你应该能够适当地调整它。
:
而不是;
来分隔条目:
Windows: java -cp jar1;jar2;jar3
Unix: java -cp jar1:jar2:jar3
答案 1 :(得分:0)
确保所有必需的jar都在ClassPath中:因为NoClassDefFoundError
如果Java虚拟机或ClassLoader实例尝试加载类的定义(作为普通方法调用的一部分或作为使用新表达式创建新实例的一部分),则抛出该类,并且没有类的定义可以被发现。
答案 2 :(得分:0)
消息很明确:在类路径中找不到javapasswordsdk.exceptions.PSDKException;
。
因此,似乎该类不在您认为它所在的jar中,或者该jar未正确添加到类路径中。