1

我正在尝试使用 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 添加到我的项目中。

有人可以帮我吗?提前致谢!

4

2 回答 2

4

将 jar 添加到构建路径只会使您的编译器在 IDE 中找到类。对于 RCP 应用程序,您必须将 jar 添加plug-in.xml为外部 jar。然后 jar 被捆绑在您的应用程序中,并在它的运行时可用。

您可以在 Eclipse 编辑器中的选项卡上执行此操作Runtime。单击Add...类路径部分并在此处添加您的 jar。这会自动将 jar 添加到您的构建路径中,因此您最好在此之前将其删除。

您可以在此处找到详细说明(带有图像):将 jar 文件添加到 Eclipse RCP 插件

于 2013-05-31T06:42:31.017 回答
0

现在把它作为我问题的答案:

当我收到错误时,我在 Manifest.mf 中的“必需捆绑包”文件看起来像这样:

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** 
于 2013-05-31T16:46:17.660 回答