为每个平台构建一个jar用于多平台SWT应用程序

这个主题已经有几个问题,但它们似乎都没有正常工作。

以下是它们的列表:

  • 使用Ant构建多平台SWT应用程序
  • 为SWT应用程序构建多平台可执行文件(Eclipse)
  • 使用maven为SWT应用程序构建多平台可执行文件
  • 适用于不同平台的SWTjar
  • 创建跨平台Java SWT应用程序

我的要求是构建一个ant脚本, 每个平台创建一个jar ,即一个用于Windows x86,一个用于Windows x64,Linux x86 / x64等。

有没有人有进一步的见解?

使用上述方法,我无法生成可行的解决方案。 它要么以自动加载的SWT jar文件结束,要么不包含在类路径中。

如果有人能够提出一个有效的例子(理想情况下包括完整的源代码),那就太棒了!

是的,所以我终于想出了一个我在三个平台上成功测试的解决方案。

两个神奇的组件是jar-in-jar-loader和一个正确的构建脚本。

可以在此处找到带注释的构建脚本:

                                                                                               

它基本上做的是定义没有任何SWT库的基类路径。 然后,它使用基础类创建特定于平台的类路径,并添加适当的平台SWT库。

然后, jar任务使用这些类路径和jar-in-jar-loader为每个平台创建一个单独的jar。

就是这样,一种为每个(支持)平台生成jar的全自动方式。


我创建了一个人们可以下载和测试的示例项目。 这是多平台应用程序的一个简单起点。

https://www.dropbox.com/s/ianrbl4bn0fmsdi/SWTApplication.7z


更新

我通过正确使用macrodef设法显着缩短了ant脚本:)