gpt4 book ai didi

java - 不同平台的SWT jar

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:09:07 25 4
gpt4 key购买 nike

我正在使用 JWebBrowser在 Swing 应用程序中。此类属于 The DJ Project .它需要 swt jar 来执行。现在我已经将 swt jar for windows 包含到我的应用程序的 jar 包中。我想知道如何在同一个包装中包含用于 linux/mac 的 swt jar?我正在使用 ant 构建应用程序 jar。我应该为不同的平台构建放置不同 swt jar 的 jar 吗?

最佳答案

如果您想要在不同平台(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 可以通过自定义类加载器或通过使用反射调用 protected 方法 URLClassloader.addURL(URL url) 来执行。

我已经在我的网站上放置了执行此确切任务的工作代码:http://www.chrisnewland.com/select-correct-swt-jar-for-your-os-and-jvm-at-runtime-191

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

关于java - 不同平台的SWT jar,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7134219/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com