我正在尝试使用draw2d进行插件开发。现在,我在代码中的所有内容都是:
import org.eclipse.draw2d.LightweightSystem;
import org.eclipse.swt.SWT;
import org.eclipse.swt.widgets.Canvas;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.ui.part.*;
public class GraphView extends ViewPart {
public GraphView() {
}
@Override
public void createPartControl(Composite parent) {
//use LightweightSystem to create the bridge between SWT and draw2D
final LightweightSystem lws = new LightweightSystem(new Canvas(parent, SWT.NONE));
}
@Override
public void setFocus() {
// TODO Auto-generated method stub
}
}
当我启动我的eclipse应用程序时,我得到了org.eclipse.e4.core.di.InjectionException: java.lang.NoClassDefFoundError:org / eclipse / draw2d / LightweightSystem 。我将org.eclipse.draw2d作为外部jar添加到我的项目中。
有人可以帮我这个吗?提前谢谢!
答案 0 :(得分:4)
将jar添加到构建路径只会使IDE中的编译器找到类。对于RCP应用程序,您必须将plug-in.xml
中的jar作为外部jar添加。然后jar被捆绑在你的应用程序中,并在运行时可用。
您可以在选项卡Runtime
上的Eclipse编辑器中执行此操作。单击classpath部分中的Add...
并在此处添加jar。这会自动将jar添加到您的构建路径中,以便您可以在此之前将其删除。
您可以在此处找到详细说明(带图片):Adding a jar file to your Eclipse RCP Plugin
答案 1 :(得分:0)
现在把它作为我问题的答案:
当我收到错误时,Manifest.mf中的“required bundle”文件看起来像这样:
Require-Bundle: org.eclipse.ui,
org.eclipse.core.runtime
我把它改为:
Require-Bundle: org.eclipse.core.runtime,
org.eclipse.ui,
org.eclipse.draw2d,
org.csstudio.swt.widgets;
bundle-version="2.0.1";resolution:=optional, org.csstudio.swt.xygraph;
bundle-version="2.0.1";resolution:=optional**