Java ClassNotFoundException,即使该类包含在buildpath中包含的jar文件中
我正在编辑一个eclipse插件代码。只是一个新手,所以我不太清楚。只是想让它运行自动取款机 运行时程序抛出ClassNotFoundException。我已经将puakma.jar文件包含到项目的构建路径中,并且还确认该类存在于SOAP包中的jar文件中。可能的问题是什么 stacktrace如下所示:Java ClassNotFoundException,即使该类包含在buildpath中包含的jar文件中,java,eclipse-plugin,classloader,classcastexception,Java,Eclipse Plugin,Classloader,Classcastexception,我正在编辑一个eclipse插件代码。只是一个新手,所以我不太清楚。只是想让它运行自动取款机 运行时程序抛出ClassNotFoundException。我已经将puakma.jar文件包含到项目的构建路径中,并且还确认该类存在于SOAP包中的jar文件中。可能的问题是什么 stacktrace如下所示: java.lang.NoClassDefFoundError: puakma/SOAP/SOAPFaultException at puakma.coreide.ServerManag
java.lang.NoClassDefFoundError: puakma/SOAP/SOAPFaultException
at puakma.coreide.ServerManager.createServerConnection(ServerManager.java:120)
at puakma.vortex.dialogs.server.AppSelectionDialog.listApplications(AppSelectionDialog.java:284)
at puakma.vortex.dialogs.server.AppSelectionDialog$6.run(AppSelectionDialog.java:234)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:53)
Caused by: java.lang.ClassNotFoundException: puakma.SOAP.SOAPFaultException
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:421)
at org.eclipse.osgi.internal.loader.BundleLoader.findClass(BundleLoader.java:412)
at org.eclipse.osgi.internal.baseadaptor.DefaultClassLoader.loadClass(DefaultClassLoader.java:107)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 4 more
对于Eclipse插件,您需要向类路径添加相应的jar,如下所示:
Bundle-ClassPath: lib/foobar.jar,
.
在eclipse插件中将JAR添加到类路径的方式不同于普通java项目,因为它基于OSGi
您可以从这里了解更多关于eclipse插件类路径的信息,希望这会有所帮助。更一般地说,正如我花了几个小时才发现的那样,在eclipse中有构建路径和运行时类路径。前者用于编译java应用程序,可通过以下方式访问:
后者处理的是JRE能够在运行时定位相关类。要设置此选项,您必须进入运行配置,转到标记为“Dependencies”的选项卡,并在其中添加库。有关更多信息,请搜索“Eclipse运行配置依赖项”clean and build project在runi尝试之前,它不起作用,我想我可以右键单击jar文件并将它们添加到构建路径。看来那不行。我遵循了你的方法,效果很好。Thanx堆。@nick-s您可以,但构建类路径与运行时类路径不同。PDE知道,当您向OSGi类路径(运行时)添加jar时,您也希望它在构建类路径上可用@普拉迪普·辛哈