【问题标题】:How to Install "Nebula" Project into Eclipse如何将“Nebula”项目安装到 Eclipse 中
【发布时间】:2018-05-02 18:48:39
【问题描述】:

我正在尝试从 Eclipse 安装 Nebula 软件。看来,我错过了一个可能很少,但非常相关的一点。
我的主要目标是测试和使用“Nebula Oscilloscope Widget”。
所以我按照我在:
https://www.eclipse.org/nebula/downloads.php
上告诉我的做了,并使用了:
发布 - 发布 1.4.0 还有:
下载 - 更新网站:http://download.eclipse.org/nebula/releases/1.4.0
我设法将它放入 eclipse 安装中,并在 .p2 中获得了一些目录和文件,例如

  • \org.eclipse.equinox.p2.core\
  • \pool\features\org.eclipse.nebula.widgets.oscilloscope.feature_1.4.0.201711021145\

还有
META-INF 目录
一个文件 epl-v10.html
特性.properties
特征.xml
license.html

我不明白,它有什么帮助。 不幸的是,Eclipse 也没有看到它。
Java 导入语句,如
导入 org.eclipse.nebula.widgets.oscilloscope.multichannel.OscilloscopeDispatcher;
导入 org.eclipse.swt.SWT;
还没有解决。

下次尝试: 页面上有一个 zip 文件,标题为
“更新站点存储库压缩:repository.zip”
http://download.eclipse.org/nebula/releases/1.4.0/repository-nebula-1.4.0.zip
加载它,很多 jar 文件都在里面——但是放在哪里呢?

下次试试,当然有git链接:
https://github.com/eclipse/nebula
在哪里可以获得“nebula-master.zip”

我将它作为“来自存档”导入。结果我终于得到了一个项目
“org.eclipse.swt.nebula” 包含几个子文件夹。我的挚爱,示波器在
Project "org.eclipse.swt.nebula" 中
...文件夹小部件,
...文件夹 oszilloskope,
...文件夹 org.eclipse.nebula.widgets.oscilloscope.sn-ps
...文件夹源
...文件夹组织
...文件夹日食
...文件夹星云
...文件夹小部件
...文件夹示波器
...文件夹 sn-ps。
我不认为,这种结构是有意的。 尝试运行演示,我收到类似
的错误 “启动配置 GridAllTests 引用了不存在的项目 org.eclipse.nebula.widgets.grid.test。” 什么是正确的。

“org.eclipse.nebula.widgets.grid.test”是
文件夹网格,
文件夹widgtes,
项目 org.eclipse.swt.nebula

出现了严重错误,可能是在导入时。 如何正确处理?

谢谢!

【问题讨论】:

  • 您想在纯 Java 应用程序或 OSGi 应用程序中使用小部件吗?对于普通的 Java 应用程序,您必须将 Nebula JAR 和所有必需的 JAR 添加到 Java 类路径中。安装后,您将在 Eclipse 安装目录的 plugins 子目录中找到 JAR。如果是 OSGi 应用程序,请创建一个新的插件项目并将依赖项添加到 Nebular 插件/捆绑包中。
  • 你好@tarik!我想提醒您,如果它解决了您的问题,那么您应该接受下面 howlger 的回答。请参阅help pages 了解更多信息。

标签: java eclipse nebula


【解决方案1】:

如果您想在 普通 Java 应用程序(而不是 OSGi 应用程序)中使用 Nebula Oscilloscope 小部件,您必须将以下 JAR 添加到您的 Java 构建路径(Project > Properties: Java Build Path),可以在安装后的 Eclipse 安装目录的 plugins 子目录中找到(使用 Add External JARs... 按钮):

  • org.eclipse.swt_<version>.jar(例如org.eclipse.swt_3.106.1.v20170926-0519.jar
  • org.eclipse.swt.<platform>_<version>.jar(例如org.eclipse.swt.win32.win32.x86_64_3.106.1.v20170926-0519.jar
  • org.eclipse.equinox.common_<version>.jar(例如org.eclipse.equinox.common_3.9.0.v20170207-1454.jar
  • org.eclipse.nebula.widgets.oscilloscope_<version>.jar(例如org.eclipse.nebula.widgets.oscilloscope_1.4.0.201711021145.jar

OscilloscopeExampleTab.java 还需要适应才能在纯 Java 项目中使用它:

  • 删除extends AbstractExampleTab
  • 删除所有@Overrides
  • final String path = FileLocator.getBundleFile(Platform.getBundle(BUNDLE)).getPath();行更改为final String path = "wavs";(如果使用声音,您必须创建一个文件夹wavs,其中包含示例的*.wav文件)
  • 将行} catch (IOException e) {更改为} catch (Throwable e) {
  • Source > Organize Imports 以删除无法解析的不需要的导入

通过这些改编,您可以通过以下主要方法运行示例:

public static void main (String [] args) {
    Display display = new Display ();
    Shell shell = new Shell (display);
    shell.setSize(600, 800);

    RowLayout layout = new RowLayout(SWT.HORIZONTAL);
    layout.wrap = true;
    layout.fill = true;
    layout.justify = false;
    shell.setLayout(layout);

    Composite mainArea = new Composite(shell, SWT.None);
    mainArea.setLayout(new RowLayout());

    Composite settings = new Composite(shell, SWT.None);
    settings.setLayout(new RowLayout(SWT.HORIZONTAL));

    OscilloscopeExampleTab osci = new OscilloscopeExampleTab();
    osci.createParameters(settings);
    osci.createControl(mainArea);

    shell.open ();
    while (!shell.isDisposed ()) {
        if (!display.readAndDispatch ()) display.sleep ();
    }
    display.dispose ();
}

生成的 Nebula Oscilloscope 小部件示例作为纯 Java 应用程序:

【讨论】:

  • 你好 howlger,非常感谢。看来,您花了一些时间在您的平台上进行本地测试。我听从了你的建议,几个错误消失了。 3 仍然存在 -
    import org.eclipse.core.runtime.Platform;
    import org.eclipse.nebula.examples.AbstractExampleTab;
    无法重新使用,可能出于这个原因
  • 去掉这些导入就行了,去掉extends AbstractExampleTabfinal String path = ...之后就不需要了。
  • 你好 howlger,非常感谢。看来,您花了一些时间在您的平台上进行本地测试。所以我很遗憾没有带着成功的故事回来,而是新的问题:我听从了你的建议,几个错误消失了。这些仍然存在 -
    import org.eclipse.core.runtime.Platform;导入 org.eclipse.nebula.examples.AbstractExampleTab;无法解决,可能是因为这个原因,例如显示显示=新显示();外壳外壳 = 新外壳(显示);失败了。 org.osgi.framework.bundle ....类型无法解析。谢谢! - 塔里克
  • 如果您在OscilloscopeExampleTab 中执行Source > Organize Imports,则应该不会再出现编译错误。否则,请确保您的纯 Java 项目中只有 OscilloscopeExampleTab
  • 运行良好。谢谢!
猜你喜欢
  • 1970-01-01
  • 2020-12-05
  • 2015-08-01
  • 2013-05-22
  • 1970-01-01
  • 1970-01-01
  • 2019-10-16
  • 1970-01-01
  • 2014-11-09
相关资源
最近更新 更多