无法在64位JVM上加载32位SWT库

时间:2013-08-12 15:03:10

标签: java jvm swt libraries

我的电脑是win7 64位,jdk是1.7.0.21,jvm是1.6 ..和64位 我想 运行SWT应用程序并导出为runnable jar文件 。当我运行应用程序时,它有一个例外,即无法在64位JVM上加载32位SWT库,所以我将SDK作为备用jre导入,就像你指向 Cannot load 64-bit SWT libraries on 32-bit JVM ( replacing SWT file ) 一样,在Eclipse中,应用程序可以正常运行,但是当我编辑bat文件以运行jar文件时,它总是遇到像64位JVM上无法加载32位SWT库的问题,我有64个swt.jar有点,但我不知道如何更换,我想用SDK中的信息编辑bat文件。如何处理这个问题?

5 个答案:

答案 0 :(得分:2)

您有一个64位JVM,因此它不会运行32位SWT库。你需要:

  1. 下载并安装32位JVM并更改项目设置以运行32位JVM而不是64位JVM。
  2. 下载并安装64位库。
  3. 此前的SO问题对第一个选项及附图有很好的描述:

      

    Cannot load 64-bit SWT libraries on 32-bit JVM ( replacing SWT file )

答案 1 :(得分:0)

64位JVM? 你应该使用64位swt

答案 2 :(得分:0)

除了对应于操作系统的适当的swt lib及其位数外,有时还要考虑以下内容:

我的环境:

32位Ubuntu

32位JVM / JRE

Eclipse使用32位JRE运行

32位Gtk SWT

方法1: 当我用64位swt替换32位swt以在其他平台上进行测试时,我遇到了问题。要解决这个问题,我必须删除/清理项目并使用64位swt重建项目。但这一步在逻辑上没有意义,仍然有效。

方法2: 每个操作系统的所有swt库都有相同的名称 - " swt.jar"居住在不同的文件夹中。我在测试时只改为适当的lib,即32位和64位o / s都有swt.jar。现在这在某种程度上造成了一些问题。尚无法识别。但是,在将每个swt lib文件的名称更改为不同的名称时,它已得到解决。这一步也没有多大意义。

方法3: 我正在使用geotools api版本10.5,它还包含bin文件夹中的swt库。我不得不从文件夹中删除它(移动到备用位置),现在我的应用程序运行顺畅!!

答案 3 :(得分:0)

我有类似的问题。在我的64位机器上安装32位jvm解决了这个问题。

答案 4 :(得分:0)

我很难与SWT合作。这需要安装每个SO(Linux,Windows | 32,64),Swing没有这个问题而且很酷,但我更喜欢SWT / JFace。

为了解决这个问题,我创建了一个Ant脚本来为每个安装压缩其正确的swt jar。

我得到了特定的swt罐子:

isPrimaryTopicOf property