SWT jar适用于不同平台

我在Swing应用程序中使用JWebBrowser。此类属于DJ项目。它需要swt

jar执行。现在,我已将Windows的swt jar包含在应用程序的jar包装中。我想知道如何在同一包装中包含用于Linux / Mac的swt

jars?我正在使用ant来构建应用程序jar。我应该建立将不同的swt罐放入不同平台的罐吗?

回答:

如果您想要一个可以在不同平台(Win / Mac / Linux / * nix)或体系结构(32/64位)上运行的构建,则可以将每个目标平台的SWT

jar与安装程序捆绑在一起,然后加载正确的一个在运行时动态运行(或者让安装程序在安装时复制正确的SWT jar)。

例如,说要支持32位和64位Windows和Linux,您将拥有SWT jar:

lib/swt_win_32.jar

lib/swt_win_64.jar

lib/swt_linux_32.jar

lib/swt_linux_32.jar

使您的ant脚本/安装程序包括所有这些(每个大约1.6MB),然后在运行时的代码中,您可以使用Java系统属性检测操作系统和体系结构

System.getProperty("os.name");

System.getProperty("os.arch");

建立正确的jar文件的名称。

在运行时加载jar可以由自定义类加载器执行,也可以通过URLClassloader.addURL(URL url)使用反射调用受保护的方法来执行。

我已经在我的网站上放置了执行此确切任务的工作代码:http : //www.chrisnewland.com/select-

correct-swt-jar-for-your-os-and-jvm-at-

runtime-191

如果您能忍受代码气味,那么它是解决非常常见的SWT问题的快速解决方案。

以上是 SWT jar适用于不同平台 的全部内容, 来源链接: utcz.com/qa/404524.html

回到顶部