java - 如何将 "Nebula"项目安装到 Eclipse 中

标签 java eclipse nebula

我正在尝试从 Eclipse 安装 Nebula-Software。看来,我错过了一个可能很小但非常相关的点。
我的主要目标是测试和使用“星云示波器小部件”。
所以我按照我被告知的去做:
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.oscillscope.feature_1.4.0.201711021145\

还有
META-INF 目录
一个文件 epl-v10.html
功能.属性
功能.xml
license.html

我不明白它有什么帮助。 不幸的是,Eclipse 也看不到它。
Java 导入语句如
导入 org.eclipse.nebula.widgets.oscillscope.multichannel.OscillscopeDispatcher;
导入 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” 包含几个子文件夹。我的最爱,示波器位于
项目“org.eclipse.swt.nebula”中
...文件夹小部件,
...文件夹oszilloskope,
...文件夹 org.eclipse.nebula.widgets.oscillscope.snippets
...文件夹src
...文件夹组织
...文件夹 eclipse
...文件夹星云
...文件夹小部件
...文件夹示波器
...文件夹片段。
我不认为这种结构是有意为之的。 尝试运行演示,我收到如下错误
“启动配置 GridAllTests 引用不存在的项目 org.eclipse.nebula.widgets.grid.test。” 什么是对的。

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

发生了严重错误,可能是在导入时。 怎样做才是正确的?

谢谢!

最佳答案

如果您想在纯 Java 应用程序(而不是 OSGi 应用程序)中使用 Nebula Oscillscope 小部件,您必须将以下 JAR 添加到您的 Java 构建路径(项目 > 属性:Java 构建路径),可以在 plugins 中找到安装后 Eclipse 安装目录的 super 目录(使用添加外部 JAR... 按钮):

  • 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
  • 删除全部 @Override s
  • 更改行final String path = FileLocator.getBundleFile(Platform.getBundle(BUNDLE)).getPath();final String path = "wavs"; (如果使用声音,您必须创建一个文件夹 wavs,其中包含示例的 *.wav 文件)
  • 更改行} catch (IOException e) {} catch (Throwable e) {
  • 来源 > 组织导入以删除无法解析的不需要的导入

通过这些调整,您可以通过以下 main 方法运行示例:

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 ();
}

作为普通 Java 应用程序生成的 Nebula Oscillscope 小部件示例:

enter image description here

关于java - 如何将 "Nebula"项目安装到 Eclipse 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47376963/

相关文章:

java - 我将使用 Apache Wicket 应用程序获得什么样的数据库?

java - JAVA与Delphi之间的解密与加密

java - 以子类作为参数的重载方法,但将方法称为父类(super class)

java - 在运行android模拟器之前保存代码?

java - 星云:CalendarCombo。如何设置日期()?

java - NatTable 单元格中的图标

java - 远程运行 map 查询失败。在节点上执行 map 查询失败

eclipse - UIMA 中的名称实体关系

java - Eclipse 运行配置

eclipse-plugin - TreeViewer 到 GridTreeViewer : bridge between existing ITreeContentProviders and "lazy" ObservableListTreeContentProvider