Skip to main content



      Home
Home » Eclipse Projects » Standard Widget Toolkit (SWT) » How to build Windows 7/64-bit SWT apps
How to build Windows 7/64-bit SWT apps [message #768790] Tue, 20 December 2011 14:58 Go to next message
Eclipse UserFriend
We would like to build SWT/JFace apps that run on my 64-bit Windows 7 PC.

When we run the jar file, we get this message:
Cannot load 32-bit SWT libraries on 64-bit JVM

How do we fix this?
Re: How to build Windows 7/64-bit SWT apps [message #769056 is a reply to message #768790] Wed, 21 December 2011 05:14 Go to previous messageGo to next message
Eclipse UserFriend
<html>
<head>
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
</head>
<body bgcolor="#FFFFFF" text="#000000">
Bill,<br>
<br>
Did you download the 64 bit version of Eclipse?  I.e., <font
size="+1"><span class="filename">eclipse-SDK-3.7.1-win32-x86_<b>64</b>.zip</span>
</font><br>
<br>
<br>
On 20/12/2011 8:58 PM, Bill wrote:
<blockquote cite="mid:jcqpcd$kr1$1@news.eclipse.org" type="cite">We
would like to build SWT/JFace apps that run on my 64-bit Windows 7
PC.
<br>
<br>
When we run the jar file, we get this message:
<br>
 Cannot load 32-bit SWT libraries on 64-bit JVM
<br>
<br>
How do we fix this?
<br>
<br>
</blockquote>
</body>
</html>
Re: How to build Windows 7/64-bit SWT apps [message #769107 is a reply to message #769056] Wed, 21 December 2011 07:25 Go to previous messageGo to next message
Eclipse UserFriend
Yes, for a reason I've never understood, 32 bits SWT versions are not running on a 64 bits JVM (which by the way is really annoying). So either you download a 32 bits Java version either you download the 64 bits SWT version.

François
Re: How to build Windows 7/64-bit SWT apps [message #769300 is a reply to message #769107] Wed, 21 December 2011 13:55 Go to previous messageGo to next message
Eclipse UserFriend
Thanks everyone who has tried to help. Below I will explain the many failed attempts to fix this and ask again for any help.

For anyone else having this problem, the following links may be helpful:

http://www.eclipse.org/swt/eclipse.php
http://stackoverflow.com/questions/2921193/swt-on-windows-64-bit

Situation:
1. Trying to create stand alone SWT/JFace app.
2. Totally don't care if it's 32, 64 or 179.3 bits.
3. In Windows/Preferences/Java/Installed JREs, have tried selecting both 32 bit and 64 bit JRE's. Have downloaded and installed others.
4. Out of desperation, may go and install a different version of Eclipse (and probably break countless other projects).
5. We always get the message:
java.lang.UnsatisfiedLinkError: Cannot load 64-bit SWT libraries on 32-bit JVM


I've heard a few things now, so maybe these questions will shed light:

1. When launching an app from Eclipse, simply editing the settings in "Window/Prefs/Java/Installed JREs" should allow us to launch an app with either a 32-bit JRE or a 64-bit JRE regardless of what version of Eclipse I am running. True?

2. Some say you need to have both the 32-bit and 64-bit versions of the jar file. What's with that? Given that SWT is a wrapper around native controls, why would anyone want to complicate things further? I can't believe this.
Re: How to build Windows 7/64-bit SWT apps [message #774071 is a reply to message #769300] Tue, 03 January 2012 03:01 Go to previous messageGo to next message
Eclipse UserFriend
I am building 32-bit applications on 64-bit win7. I had a similar problem, when I started the project. My solution was as follows:

1) I use the 32-bit version of eclipse (indigo)
2) I have the 32-bit JDK (1.6.0_29) registered und marked under "Installed JREs"
3) Be sure to have the 32-bit JDK selected as "Runtime JRE" in the run configuration

I also have a JAVA_HOME system variable pointing to the 32-bit JDK, but I think this has nothing to do with the SWT issue.

Hope this helps ...
Re: How to build Windows 7/64-bit SWT apps [message #774106 is a reply to message #774071] Tue, 03 January 2012 04:21 Go to previous messageGo to next message
Eclipse UserFriend
Christoph Keimel wrote on Tue, 03 January 2012 03:01
I am building 32-bit applications on 64-bit win7. I had a similar problem, when I started the project. My solution was as follows:

1) I use the 32-bit version of eclipse (indigo)
2) I have the 32-bit JDK (1.6.0_29) registered und marked under "Installed JREs"
3) Be sure to have the 32-bit JDK selected as "Runtime JRE" in the run configuration

I also have a JAVA_HOME system variable pointing to the 32-bit JDK, but I think this has nothing to do with the SWT issue.

Hope this helps ...


Yes but with this solution, if you deploy your app on another 64 bits workstation having only the 64 bits JRE(or even both version but with the 64bits version as the default) you will get the message "Cannot load 32-bit SWT libraries on 64-bit JVM".

François
Re: How to build Windows 7/64-bit SWT apps [message #774318 is a reply to message #769300] Tue, 03 January 2012 12:27 Go to previous messageGo to next message
Eclipse UserFriend
The bitness of the jvm and of the swt being used must match because the
jvm will refuse to load swt's native libraries otherwise. SWT verifies
this the first time that a library load is requested so that if this is
not satisfied then a meaningful error message is output (the one you're
seeing) rather than the more generic java.lang.UnsatisfiedLinkError that
occurs otherwise.

So if you want to have a single download that can be run with either a
32- or 64-bit jvm then you need to ship both 32- and 64-bit swt jars,
and determine at runtime which of them to load. Java's "os.arch" system
property can be used to determine this, as its value reflects the
bitness of the jvm, not of the OS (so it will answer something like
"i386" or "i686" when using a 32-bit jre on a 64-bit OS, which is what
you're interested in).

Grant


On 12/21/2011 1:55 PM, Bill wrote:
> Thanks everyone who has tried to help. Below I will explain the many
> failed attempts to fix this and ask again for any help.
>
> For anyone else having this problem, the following links may be helpful:
>
> http://www.eclipse.org/swt/eclipse.php
> http://stackoverflow.com/questions/2921193/swt-on-windows-64-bit
>
> Situation:
> 1. Trying to create stand alone SWT/JFace app.
> 2. Totally don't care if it's 32, 64 or 179.3 bits.
> 3. In Windows/Preferences/Java/Installed JREs, have tried selecting both
> 32 bit and 64 bit JRE's. Have downloaded and installed others.
> 4. Out of desperation, may go and install a different version of Eclipse
> (and probably break countless other projects).
> 5. We always get the message:
> java.lang.UnsatisfiedLinkError: Cannot load 64-bit SWT libraries on
> 32-bit JVM
>
>
> I've heard a few things now, so maybe these questions will shed light:
>
> 1. When launching an app from Eclipse, simply editing the settings in
> "Window/Prefs/Java/Installed JREs" should allow us to launch an app with
> either a 32-bit JRE or a 64-bit JRE regardless of what version of
> Eclipse I am running. True?
>
> 2. Some say you need to have both the 32-bit and 64-bit versions of the
> jar file. What's with that? Given that SWT is a wrapper around native
> controls, why would anyone want to complicate things further? I can't
> believe this.
>
Re: How to build Windows 7/64-bit SWT apps [message #777038 is a reply to message #768790] Mon, 09 January 2012 12:50 Go to previous messageGo to next message
Eclipse UserFriend
hi,

I get this error message trying to run the swtexample.jar described in
"Running standalone SWT Examples outside of Eclipse" on Win7 64bit using JRE 7.0U2 (64bit):

Exception in thread "main" java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
no swt-gtk-3659 in java.library.path
no swt-gtk in java.library.path
Can't load library: C:\Windows\TEMP\swtlib-64\swt-gtk-3659.dll
Can't load library: C:\Windows\TEMP\swtlib-64\swt-gtk.dll

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.internal.Converter.wcsToMbcs(Unknown Source)
at org.eclipse.swt.internal.Converter.wcsToMbcs(Unknown Source)
at org.eclipse.swt.widgets.Display.<clinit>(Unknown Source)
at org.eclipse.swt.examples.controlexample.ControlExample.main(ControlEx
ample.java:215)

Compiling my own SWT-Apps work within Eclipse with the following settings:
Eclipse 3.7.1 (64bit)
Java SDK (64 bit)
SWT-3.7.1 (64 bit)

I get the same error above after deploying, when it correctly compile with eclipse.

Using JRE7_U2_64bit instead after uninstalling SDK, I also get the same error above, but already within Eclipse.

I am sure there is something wrong with my (sys) configuration.

BTW in Ubuntu 11.10 it works with the Linux SWT64 bit and SDK7_U2

Any suggestions?

Thx.
Regards
Hagen




Re: How to build Windows 7/64-bit SWT apps [message #777458 is a reply to message #777038] Tue, 10 January 2012 09:50 Go to previous messageGo to next message
Eclipse UserFriend
SWT does not support running GTK on Windows, you need to be pointing at
the swt jar for win32.

Grant


On 1/9/2012 12:50 PM, H. M. wrote:
> no swt-gtk-3659 in java.library.path
Re: How to build Windows 7/64-bit SWT apps [message #777492 is a reply to message #777458] Tue, 10 January 2012 10:45 Go to previous messageGo to next message
Eclipse UserFriend
I tried it already, but no effect and I did not use the Linux SWT.
I already uninstalled all java versions and reinstalled them but no chance.

On another Win7 Pc with JRE7_U2 running it works all fine.

It might be the fact that the swt.dll files cannot be copied temporarily to the \..\AppData\Local\Temp directory (like it is on another machine). Every attemp to run the example or another SWT app it creates an empty swtlib-64 folder. I also made a test with another new created user account, but the error still occurs... It must be something with the system configuration, but I cannot locate the error at the moment.

[Updated on: Tue, 10 January 2012 10:45] by Moderator

Re: How to build Windows 7/64-bit SWT apps [message #780767 is a reply to message #777492] Thu, 19 January 2012 05:30 Go to previous messageGo to next message
Eclipse UserFriend
Problem solved!
I had to reinstall win7, Confused now it works!
Re: How to build Windows 7/64-bit SWT apps [message #780964 is a reply to message #777492] Thu, 19 January 2012 05:30 Go to previous messageGo to next message
Eclipse UserFriend
Problem solved!
I had to reinstall win7, :? now it works!
Re: How to build Windows 7/64-bit SWT apps [message #885695 is a reply to message #768790] Wed, 13 June 2012 08:55 Go to previous message
Eclipse UserFriend
I was teaching 'Eclipse Plugins' the other day to a class of developers who were all working on Windows 7 64 bit OS's. Some installed the course provided Helios RCP 32 bits IDE and some were working with their usual Indigo JavaEE IDE 64 bits.

We were exercising stand alone SWT applications. The only solution that actually worked for those who were using the Helios 32 bits to avoid the 'Could not load SWT library' problem was to install a 32 bits JDK. They had to reconfigure the IDE installed JRE (through the IDE preferences) to actually point to the 32 bits JDK. We did not try the -d32 JVM argument yet on a 64 bits version JVM.

BTW: The %JAVA_HOME% environment variable is, in my opinion, totally irrelevant in newer versions of Windows in this context. It seems Windows obtains the information from the registry and not from the environment variable and when you issue the 'java -version' command in a console you will always get the version that was installed with Windows installer regardless of the JAVA_HOME environment variable.

[Updated on: Wed, 13 June 2012 09:00] by Moderator

Previous Topic:Combo dropdown issue on 3.7.2
Next Topic:How to control visibility of buttons in property sheet
Goto Forum:
  


Current Time: Tue Jul 01 15:50:24 EDT 2025

Powered by FUDForum. Page generated in 0.05384 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top