2013-06-30 125 views
2

我在编辑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 
+0

运行前清理并构建项目 –

+0

我试过了,它没有工作 –

回答

3

您需要添加correspoinding罐子到类路径下面的Eclipse插件:

  1. 打开你的plugin.xml
  2. 转到Runtime选项卡
  3. 在classpath部分下点击“Add”并选择你已经放置在项目文件夹下的jar文件(比如说在lib下)。
  4. 现在干净,当你这样做,它会添加相应的条目,如下MANIFEST.MF建设项目

Bundle-ClassPath: lib/foobar.jar, 
. 

添加罐子在Eclipse插件类路径的方式是不同的来自普通的java项目,因为它基于OSGi。

你可以从这个link.了解更多关于eclipse插件的classpath希望这会有所帮助。

+0

我以为我可以右键单击jar文件并将它们添加到构建路径中。看起来这不起作用。我遵循你的方法,它运作良好。谢谢堆。 –

+1

@ nick -s你可以但构建类路径与运行时类路径不是一回事。 PDE知道,当你将一个jar添加到OSGi类路径(运行时)时,你也希望它在构建类路径中可用。 –

相关问题