当前位置: 首页 > 面试题库 >

SWT jar适用于不同平台

谷梁德容
2023-03-14
问题内容

我在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问题的快速解决方案。



 类似资料:
  • 我在pgsql上有一个名为(超过100万行)的表,但我也有很多重复项。我选择了3个字段:,,。 我想用和随机选择它们,所以我这样做是为了在我的PHP脚本中节省一些内存。 但我如何才能做到这一点,这样它只会给我一个名单,没有重复的名字。 例如,将返回,但不会返回。名称字段是最重要的,每次我选择时必须在列表中唯一,并且必须是随机的。 我试过使用,但它希望我在中或在一个加积函数中也有id和元数据,但我不

  • 问题内容: 嗨,我只是简单地尝试在www.example.com上获取h1标签,该标签显示为“ Example Domain”。该代码适用于http://www.example.com,但不适用于https://www.exmaple.com。我该如何解决这个问题?谢谢 问题答案: PhantomJSDriver不支持(所有)DesiredCapabilities。 你会需要: 记录在这里:htt

  • 所以我使用这种方法写入文件,它在windows上运行完全正常,但在mac上运行时,它会创建文件,但它们是空的。 我知道数据是正确的,因为它打印正确。感谢您的任何帮助,这真的让我绊倒了。

  • 我已经使用GCM创建了一个应用程序,它可以在Android平台4.1和4.03上正常运行(即获取RegId并在我的服务器中注册自己,甚至可以接收GCM),但是当我启动Android 2.3(API 10)模拟器时,该应用程序会被安装但从未注册,即从未获取RegId。当我第一次启动(安装)应用程序时,它会收到一条GCM消息,我不知道该消息来自何处,但我可以看到该设备未在我的服务器中注册。我还使用了H

  • 我在一个Jpanel中有一个jbutton,它有FlowLayout和尾部对齐。这段代码实际上在ubuntu环境中工作,但当我在centos环境中运行它时,文本不适合按钮。 然后我添加以下几行: 这额外的线路有帮助,但看起来,解决方案并不好。

  • 列名称的类型为int[] 上述查询适用于postgresql,但不适用于hsqldb,甚至适用于sql 尝试的hsqldb版本:2.2.9和2.3.0 在hsqldb中工作的sql是从table_name中选择x,unnest(column_name)y(x)x和y不是该表的列。