在Eclipse中导出SWT项目(通过SWT Designer进行项目设置)

时间:2012-11-21 00:46:37

标签: java eclipse jar swt

我在Eclipse中使用SWT为我的GUI创建了一个小应用程序。我通过安装SWT Designer来设置项目,SWT Designer与Swing Designer非常相似,仅适用于SWT。我通过转到文件>>创建了项目。新>>其他>> Window Builder>> SWT设计师>> SWT / JFace Java项目。这为我设置了整个项目,所以我可以开始使用SWT了。当我使用Eclipse运行它时,我的程序成功运行。

我希望能够在没有Eclipse的情况下运行它。我尝试通过File>>将其导出为.jar。导出>> Java>> JAR文件。我选择了我的项目,点击Next>>接下来,然后我设置我的主类并点击完成。没有错误。

打开.jar给了我:

  

线程“main”中的异常java.lang.NoClassDefFoundError:org / eclipse / swt / widgets / Layout

很明显SWT不在它应该的位置,所以我打开了.jar,只发现了我的文件,META-INF等等。没有SWT。没有jar,没有org文件夹,nada。

在我的Eclipse项目中,在Project Explorer下,它列出了“Referenced Libraries”,其中设置了SWT内容。在查看它的属性时,它列出了一堆org.eclipse ......的东西。我假设这是Eclipse知道运行的方式,但它似乎不会导出它。

所以我的问题是:如何使用随附的SWT导出项目,以便能够单独运行.jar?如果您能够解释手动方式(即编辑META-INF和拖放所需的SWT文件)并解释Eclipse导出方式(因此我不必一直以手动方式解释)会很好),如果有办法在Eclipse中做到这一点。

编辑:如果您在下面看到我的答案,我解释了我是如何实现这一点的,但是,它将~16MB的代码转储到我的.jar中,这对于最初< 1MB项目。如果您对如何制作它只是添加使用过的文件有任何想法,仍然可以回答答案。 ;)

2 个答案:

答案 0 :(得分:0)

听起来你不是在使用OSGI,我的建议是转到你的eclipse插件目录,抓住swt jar将它复制到你的插件中,然后转到清单编辑器,运行时选项卡并选择罐。如果您正在运行osgi应用程序,请转到.product编辑器依赖项选项卡并选择添加所需的插件,以确保您的.product文件具有正确的依赖项。如果你在不同的上下文评论中运行它,我会回答。

答案 1 :(得分:0)

我成功完成这项工作的方法是将其导出为 runnable JAR。

我的工作步骤:

运行主类。 (我特意使用CTRL + F11,这是类的默认运行,让Eclipse猜测它应该如何运行。)

转到文件>>导出>> Runnable JAR。

选择我的启动配置。 (当我点击Juno顶部栏上的运行按钮旁边的箭头时,会列出它。)

点击完成键然后等待!