【问题标题】:Make a plugin project into an executable jar in eclipse在eclipse中将插件项目制作成可执行jar
【发布时间】:2014-04-17 18:12:19
【问题描述】:

我已经开发了一个向导,我想在 eclipse 之外作为一个独立的应用程序启动它(就像点击图标 /jar 需要启动向导)。

如何将其制成可执行的 jar。我有一个调用向导对话框的主类,但是当我执行 jar 时,向导没有启动。

如何确保在启动应用程序之前加载了 Equinox 运行时?有什么帮助吗?

【问题讨论】:

标签: eclipse eclipse-plugin swt rcp pde


【解决方案1】:

如果您想在 Eclipse 之外运行您的插件,那么您必须创建 Eclipse RCP 产品,然后您可以导出该产品并作为应用程序运行。

在这里查看一些示例

http://obscuredclarity.blogspot.in/2008/11/hello-world-with-eclipse-rcp-your-first.html

RCP

Prodcut config

Product Export

【讨论】:

    【解决方案2】:

    创建 RCP 是一种解决方案,但您也可以根据需要将插件导出为可运行的 JAR 文件:

    right click -> Export... -> Java -> Runnable JAR file
    

    我总是使用“库处理”的第一个选项,即“将所需的库提取到 gen JAR”,其他选项也应该可以正常工作。

    显然你需要在某处实现 main 方法

    如果执行 jar 文件不执行任何操作,您可以尝试通过从命令行运行来调试它:

    java -jar <your jar>
    

    编辑: 这是我的主要方法,它通过从导出的 jar 文件运行来工作

    public static void main(String[] args) {
        Display display = new Display();
        Shell shell = new Shell(display);
        shell.setSize(0, 0);
        shell.setVisible(false);
    
        shell.open();
    
        WizardDialog dialog = new WizardDialog(shell, new __YOUR_WIZARD());
        dialog.open();
    
        shell.dispose();
        display.dispose();
    }
    

    【讨论】:

    • Eclipse 插件几乎总是直接或间接依赖于许多核心 Eclipse 插件。这些核心插件必须正确初始化,使用此方法不会发生。这种初始化是 Eclipse RCP 系统所做工作的重要组成部分。
    • 同意,这就是我提出“取决于您的需求”的原因......无论如何,这个解决方案是有效的,并且在某些情况下根据您需要的 Eclipse 依赖项是可以接受的。
    • 如果相关应用程序的目标只是打开一个Wizard Dialog,那么执行一些操作并完成我绝对认为RCP就像使用大炮杀死苍蝇......
    • 感谢您的回复。目的是在 SWT Jface 上使用向导,因此将其作为插件项目完成并通过主类调用。是否可以将其创建为 RCP 但是当我lauch 只有向导应该出现?
    • 恕我直言,根据我们掌握的信息,RCP 对您的需求毫无用处...您可以尝试在 EDIT 中添加这段代码(由您的向导类替换) 并检查从 Eclipse 运行主程序时向导是否打开。然后如果 -yes- 尝试导出解决方案和 java -jar
    【解决方案3】:

    非常感谢您提供宝贵的 cmets。我找到了解决方案。 请创建 Java 项目并将以下 12 个插件 jar 添加为引用库

    org.eclipse.osgi, org.eclipse.core.commands, org.eclipse.equinox.common, org.eclipse.equinox.registry, org.eclipse.core.runtime, org.eclipse.text, org.eclipse.swt.win32.win32.x86_64, org.eclipse.jface,eclipse.jface.text, org.eclipe.ui.workbench, com.ibm.icu_50.1.1, org.eclipse.ui.forms

    这适用于任何需要在没有任何 RCP 产品的情况下直接启动的 SWT 应用程序。这也可以通过“Windows Builder”工具完成,其中在创建 SWT/JFACE Java 项目时会自动添加依赖项

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-17
      • 2014-09-20
      • 2015-04-16
      • 1970-01-01
      • 2013-06-13
      • 1970-01-01
      相关资源
      最近更新 更多