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.jarlib/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