gpt4 book ai didi

java - SWT:提供多平台下载包

转载 作者:行者123 更新时间:2023-11-29 09:18:54 25 4
gpt4 key购买 nike

对于我们的 SWT 应用程序,我想提供一个通用的 Linux 下载包,它可以在 32 位和 64 位 VM 上启动。目前,我们使用 list 定义类路径并使用 java -jar main.jar 启动应用程序。 list 类路径包含多个 swt*.jars 并选择第一个匹配的(没问题,因为目前每个平台只分发一个)。

简单地提供两个 SWT 库,swt-linux-32.jarswt-linux-64.jar,看起来不太有前途,因为那样的话用户会必须手动删除错误的,否则脚本将不得不动态设置整个应用程序类路径(可怕!)。

我考虑过提供两个启动器脚本,一个用于 32 位虚拟机,另一个用于 64 位虚拟机,从 list 类路径中删除 swt.jars 并将正确的脚本显式添加到类路径中,例如java -cp swt-linux-64.jar -jar main.jar。不幸的是,看起来不能将显式类路径定义 (-cp) 与隐式类路径定义 (-jar) 混合使用。

另一种解决方案可以在启动器脚本中显式设置类路径,但这会使脚本的维护变得更加复杂。

当然,我可以选择在应用程序中动态加载正确的 swt.jar 文件,但我更愿意将不同的文件名保留在 Java 代码之外。

有没有人对我们如何管理它有更好的建议?

最佳答案

简单:进行动态类加载器操作。有一个加载器 JAR,它根据运行时的 32/64 位类型设置一个新的 URLClassLoader,然后从那里加载您的主类 - 然后调用主方法。

关于java - SWT:提供多平台下载包,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7768143/

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