0

我的电脑是win7 64位,jdk是1.7.0.21,jvm是1.6..和64位我想运行SWT应用程序并导出为可运行的jar文件。当我运行该应用程序时,它有一个例外,即无法在 64 位 JVM 上加载 32 位 SWT 库,因此我将 SDK 作为备用 jre 导入,就像您指出的 无法在 32 位 JVM 上加载 64 位 SWT 库一样(替换 SWT 文件),在 Eclipse 中,应用程序可以正常运行,但是当我编辑 bat 文件以运行 jar 文件时,它总是出现无法在 64 位 JVM 上加载 32 位 SWT 库之类的问题,我有swt.jar 用于 64 位,但我不知道如何替换,我想用 SDK 的信息编辑 bat 文件。如何处理问题?

4

5 回答 5

2

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

  1. 下载并安装 32 位 JVM 并更改项目设置以运行 32 位 JVM 而不是 64 位。
  2. 请下载并安装 64 位库。

这个先前的SO问题对第一个选项有很好的描述,并附有图表:

无法在 32 位 JVM 上加载 64 位 SWT 库(替换 SWT 文件)

于 2013-08-12T15:09:51.153 回答
0

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

于 2013-08-12T15:10:06.770 回答
0

除了与操作系统及其位数相对应的适当 swt 库外,有时还要考虑以下几点:

我的环境:

32 位 Ubuntu

32 位 JVM/JRE

使用 32 位 JRE 运行的 Eclipse

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 库。我不得不从文件夹中删除它(移动到备用位置),现在我的应用程序运行顺利!!

于 2014-07-24T07:17:39.580 回答
0

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

于 2015-04-09T12:24:37.200 回答
0

我很难使用 SWT 是发行版。每个 SO(Linux、Windows | 32、64)都需要安装,Swing 没有这个问题而且很酷,但我更喜欢 SWT/JFace。

为了解决这个问题,我创建了一个 Ant 脚本,以使用其合法的 swt jar 压缩每个安装。

我得到了特定的 swt 罐子:

http://archive.eclipse.org/eclipse/downloads/drops/R-3.6.1-201009090800/index.php#SWT

于 2015-05-05T12:13:54.740 回答