gpt4 book ai didi

java - 如何在 xp 和 windows 7 上运行 SWT 应用程序

转载 作者:行者123 更新时间:2023-12-02 06:46:10 24 4
gpt4 key购买 nike

我用 SWT 制作了一个应用程序并导出它的 jar,然后我就可以运行它了。我的机器是(win xp)。

和我的Java版本:java版本“1.6.0_39”Java(TM) SE 运行时环境(版本 1.6.0_39-b04)Java HotSpot(TM) 客户端虚拟机(版本 20.14-b01,混合模式,共享)

然后我尝试在 Windows 7 机器上运行我的 jar :java版本“1.7.0_17”Java(TM) SE 运行时环境(版本 1.7.0_17-b02)Java HotSpot(TM) 64 位服务器 VM(内部版本 23.7-b01,混合模式)

但是这台机器无法启动该应用程序。然后我尝试使用以下命令在 CMD 上运行 Jar: java -jar myapp.jar然后我得到了异常(exception):`

Exception in thread "main" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.eclipse.jdt.internal.jarinjarloader.JarRsrcLoader.main(JarRsrcLoader.java:58)Caused by: java.lang.UnsatisfiedLinkError: Cannot load 32-bit SWT libraries on 64-bit JVM
at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source)
at org.eclipse.swt.internal.C.<clinit>(Unknown Source)
at org.eclipse.swt.widgets.Display.<clinit>(Unknown Source)
at projectPackage.G.init(G.java:258)
at projectPackage.G.main(G.java:225)
... 5 more`

并且我的 Eclipse 使用的是 jre6

那么我怎样才能生成在两台机器上工作的 Jar 呢?

预先感谢您的宝贵时间

最佳答案

嗯,这个异常(exception)是不言自明的:

UnsatisfiedLinkError: Cannot load 32-bit SWT libraries on 64-bit JVM

要让你的 jar 在 32 位和 64 位上运行,你应该看看这个答案:

Create cross platform Java SWT Application

您基本上必须包含您计划将应用程序部署到的所有平台的 swt.jar,并且给定的代码将在运行时确定要使用哪个 .jar 版本。

<小时/>

一个快速但肮脏的修复方法是打开您的 jar 文件并将包含的 swt.jar (32 位) 与其他版本 (64 位) 交换。但是,这会将您的应用限制为 64 位。

<小时/>

结论:

  • 要么为不同的操作系统和位版本创建单独的 jar(每个仅包含一个 swt.jar)
  • 或者创建一个 jar 来管理所有这些(包含所有 swt.jar)

关于java - 如何在 xp 和 windows 7 上运行 SWT 应用程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18612691/

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