ClassNotFoundException即使该类包含在构建路径中包含的jar文件中
我在编辑eclipse插件代码。只是一个首发,所以没有太多的想法。只是想让它运行atm。ClassNotFoundException即使该类包含在构建路径中包含的jar文件中
运行时抛出的程序抛出ClassNotFoundException。我已将puakma.jar文件包含到项目的构建路径中,并且还确认该类存在于SOAP包内的jar文件中。可能的问题是什么?
堆栈跟踪如下:
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
您需要添加correspoinding罐子到类路径下面的Eclipse插件:
- 打开你的plugin.xml
- 转到Runtime选项卡
- 在classpath部分下点击“Add”并选择你已经放置在项目文件夹下的jar文件(比如说在lib下)。
- 现在干净,当你这样做,它会添加相应的条目,如下MANIFEST.MF建设项目
:
Bundle-ClassPath: lib/foobar.jar,
.
添加罐子在Eclipse插件类路径的方式是不同的来自普通的java项目,因为它基于OSGi。
你可以从这个link.了解更多关于eclipse插件的classpath希望这会有所帮助。
我以为我可以右键单击jar文件并将它们添加到构建路径中。看起来这不起作用。我遵循你的方法,它运作良好。谢谢堆。 –
@ nick -s你可以但构建类路径与运行时类路径不是一回事。 PDE知道,当你将一个jar添加到OSGi类路径(运行时)时,你也希望它在构建类路径中可用。 –
运行前清理并构建项目 –
我试过了,它没有工作 –