我的应用程序抛出下面的异常。Windows上的SWT 64位
Exception in thread "main" java.lang.UnsatisfiedLinkError: Cannot load 32-bit SW T libraries on 64-bit JVM.
如何解决这个问题?什么是需要的jar文件的名称?
我的应用程序抛出下面的异常。Windows上的SWT 64位
Exception in thread "main" java.lang.UnsatisfiedLinkError: Cannot load 32-bit SW T libraries on 64-bit JVM.
如何解决这个问题?什么是需要的jar文件的名称?
在64位JVM上,您需要64位SWT。当前版本可以在这里下载:
http://archive.eclipse.org/eclipse/downloads/drops/R-3.6.1-201009090800/index.php#SWT
注意前两个下载,第一个是32倍,其他为64。
注意:即使在64位Windows上,如果您使用32位JVM,您仍然需要32位SWT版本!
您只是针对错误版本的SWT构建。请下载64位Eclipse或获取增量包并根据正确的目标环境构建。
什么是“delta pack”?我对通用解决方案很好奇,因为我很想让SWT应用程序动态地选择正确的jar。 此外,您应该记住,SWT需要与虚拟机的版本相同 - 不一定是您的操作系统。 – 2010-05-30 14:59:47
增量包不会让你做任何“动态”的事情,它只是让你有能力为任何目标建立任何目标。 http://louismrose.wordpress.com/2009/01/23/installing-the-rcp-delta-pack-for-eclipse/ – andyczerwonka 2010-05-31 04:49:12
几周前我面临同样的问题。我们开发的RCP应用程序必须使用32位SWT,但我们在64位机器上工作。
我们所要做的就是更改Eclipse的配置,使其指向32位JVM。我们在Window - > Preferences - > Java - > Installed JRE上做了这个。在此首选项页面上,我们将“Program Files”的所有参考文件更改为“Program Files(x86)”。
我希望它以某种方式帮助你。
如果您正在开发64位版本的32位RCP应用程序的Eclipse,您还必须配置应用程序的目标平台以明确使用x86体系结构。否则,Eclipse PDE仍然会将64位版本的SWT库设置为插件依赖项。 – 2015-08-10 14:21:07
我的回答更多的是上面贴的答案,尤其是谁提供的(在我看来)最佳答案的用户@ClickUpvote的评论汇编少。所以这里,我只是发布之前测试过它:
如果您的应用程序抛出下面的异常(在Windows 7 64位,与JVM 64)
异常线程“main” java.lang.UnsatisfiedLinkError中:无法在64位JVM上加载32位SW T库。
然后解决方案如下: 在64位JVM上,您需要64位SWT。如下所述
当前版本可以下载 - 漂亮隐藏的很好:
向下滚动到发布
点击更在:
Stable
Windows, Linux, OS X, more...
的Windows下(x86_64)(支持的版本)(HTTP)6.3 MB swt-4.4-win32-win32-x86_64.zip
而这正是你需要的版本。
对于64位版本的下载,这些链接都已过时。试试这个:http://jarfiles.pandaidea.com/swt.html,经过一个小时的搜索后找到。
这是正确的,但只是一个简短的说明,如果你没有控制通过它可以使用SWT(例如,在64位系统上开发插件,使用64位JVM为32位RCP应用程序),您应该安装并使用32位JVM来启动您的产品,而不是修改您的RCP目标平台(请参阅Mario Marinato的答案)。 – Caspar 2011-08-04 02:03:45
@Casper:正确。 – Daniel 2011-08-04 07:09:24
新版本:[64位SWT](http://www.eclipse.org/downloads/download.php?file=/eclipse/downloads/drops4/R-4.2.1-201209141800/swt-4.2.1 -win32-win32-x86_64.zip) – Adil 2013-01-14 12:24:47