我正在使用eclipse e4 rcp應用程序,並試圖在其中使用JfreeChart。所以我在Build path的外部jar文件中添加了jcommon-1.0.16.jar,jfreechart-1.0.14.jar,jfreechart-1.0.14-experimental.jar和jfreechart-1.0.14-swt.jar。我在運行應用程序時出現以下錯誤java.lang.NoClassDefFoundError:org/jfree/data/xy/XYDataset
org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError: org/jfree/data/xy/XYDataset
at org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:344)
at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:254)
at org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
.............
Caused by: java.lang.ClassNotFoundException: org.jfree.data.xy.XYDataset cannot be found by com.xyz.project_1.0.0.qualifier
at org.eclipse.osgi.internal.loader.BundleLoader.findClassInternal(BundleLoader.java:501)
任何人都可以請建議如何繼續?
你有一個插件,它包含了JFreeChart的罐子,和你想使用XYDataset這個插件外的類路徑(除了建議你注射XYDataset成一些方法)。如果是這樣,你需要導出jfreechart類,另一個插件需要依賴於導出jfreechart類的插件。 (注:我在一個Eclipse E4富客戶端應用程序中使用jfreechart,它的工作原理) – Stefan
不。我沒有使用插件。我剛剛下載了這些罐子,並將其添加到構建路徑中。我必須做出其他更改嗎? – Acjb
通常的方法是將jar添加到插件(plugin.xml/manifest)。這些信息用於配置OSGi類加載機制。構建路徑僅在構建時使用。 – Stefan