【问题标题】:java.lang.UnsatisfiedLinkError: Cannot load 32-bit SWT libraries on 64-bit JVM in windowsjava.lang.UnsatisfiedLinkError:无法在 Windows 中的 64 位 JVM 上加载 32 位 SWT 库
【发布时间】:2014-03-05 09:01:14
【问题描述】:

我正在开发一个 Windows 应用程序。

我需要为此创建一个安装程序(32 位和 64 位 Windows 操作系统的通用安装程序),因为我正在使用 Install4J 软件。

我在 Windows 32 位,jdk 1.7 中开发。

安装程序在 32 位 Windows 操作系统中工作正常,但是当我尝试在 win 64 位操作系统中创建安装程序时,它向我抛出了一个错误,例如 java.lang.UnsatisfiedLinkError: Cannot load 32-bit SWT library on 64-bit JVM

请帮忙解决这个问题..

【问题讨论】:

    标签: java swt install4j unsatisfiedlinkerror


    【解决方案1】:

    问题在于 32 位和 64 位 Windows JVM 有单独的“swt.jar”文件,它们不可互换。您不能在 64 位 Windows JVM 上使用 32 位 Windows JAR ...或相反。 (AFAIK,根本障碍在于 Windows 和 JVM,而不是 SWT。)

    一种可能性是执行一些类加载器技巧,并根据您的应用在运行时检测到的平台在不同的 JAR 之间动态选择。安装程序需要将 SWT JAR 的两种风格都包含在不同的名称中。

    这个答案更详细:Supporting SWT on Windows/Mac & 32bit/64bit

    【讨论】:

    【解决方案2】:

    这只是因为当您将程序安装到仅安装 32 位但将加载 32 位库的程序文件中时,您可以做一件非常简单的解决方案,只需将您的程序安装在 @987654321 @

    这对我有用,也可能对你有用。

    【讨论】:

      猜你喜欢
      • 2011-05-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-12-07
      • 2016-02-13
      相关资源
      最近更新 更多