Running 32bit Eclipse on 64bit Linux

Submitted by Falken on

The release notes for Flex Builder Linux don't match what I had to do to get 32bit Eclipse running on my 64bit Linux install, so here are the steps I took. They don't cover installing the (debug) Flash player into a 32bit version of FireFox, as this is well covered elsewhere.

  1. Install a 32-bit Java run time.
    Use the 'self extracting file' rather than RPM so as to avoid mucking up any installed 64bit JVM. If you have the Java plug-in working in your 32bit web browser (the one you use with the 32bit Flash player), you could just use that install, but grabbing the most recent JVM is always a good start.
    I installed this to '/opt/jre<version>'
  2. Installed the 32-bit WTP all in one version of Eclipse 3.3 (wtp-all-in-one-sdk-R-2.0-200706260303-linux-gtk.tar.gz).
    Any Eclipse 3.3 version should work, but the WTP comes pre-bundled with all sorts of useful extras.
    I installed this to '/opt/eclipse-i386'
  3. In the eclipse.ini for the 32-bit eclipse, add '-vm ' and the path to your 32-bit JRE after the 'org.eclipse...' line, i.e.:
    -vm /opt/jre1.6.0_02-i386/
  4. Create an eclipse.sh file in the 32bit Eclipse install directory.
    This is to set up some environment settings so that Eclipse finds the 32bit JVM, and Flex Builder:
  5. export JAVA_HOME=/opt/jre1.6.0_02-i386
    export PATH=/home/chivertont/Adobe_Flex_Builder_Linux/Player/linux/:$JAVA_HOME/bin:$PATH
    export MOZ_PLUGIN_PATH=/usr/lib/browser-plugins/
    cd /opt/eclipse-i386
    ./eclipse $*
  6. Check eclipse starts by running './eclipse.sh'.
    'file eclipse' should report 'eclipse: ELF 32-bit LSB executable, Intel 80386'
  7. Open a shell and run the same 'export' lines.
    'which java' should report your 32bit install. If not, fix the paths in the export lines (and in the eclipse.sh script).
  8. From this shell start the Flex Builder Linux installer.
    Make sure it's install path matches up with the 'export PATH' line above.
  9. Once installed, change the final line of the .../Adobe_Flex_Builder_Linux/Adobe_Flex_builder.sh script to use the eclipse.sh file we made earlier rather than the current "${ECLIPSE_LOCATION}"/eclipse:
    "${ECLIPSE_LOCATION}"/eclipse.sh ......

From now on, use the Adobe_Flex_builder.sh script to start Eclipse as it sets some other environment and start up options.

If you need to add start up options to Eclipse, remember that in eclipse.sh "$*" will expand to "-vmargs ..." so you should take that into account, if you need to add more PermGenSpace:

./eclipse $* -XX:PermSize=64M -XX:MaxPermSize=128M

or a "-clean":

./eclipse -clean $*
There should be no problem using the same 'workspace', but I created a new one and then right-clicked in the (empty) project navigator and picked 'import' just to be safe.

You will need to reinstall all your plug-ins (CFEclipse, Subversion etc.) or continue to use your existing 64bit Eclipse for non-Flex work, unless you use something to [node:1506,title="make your Eclipse plugin list survive an Eclipse upgrade"].

Don't forget to update your Flash player to the latest debug version (included with Builder) - you can check that it works OK by visiting http://kb.adobe.com/selfservice/viewContent.do?externalId=tn_19245&sliceId=1

Also, check the Flex Builder Linux release notes on Labs for setting up the 'defaut browser' and point that at your 32bit FireFox (or other browser if it works with Flash Player 9).

You can export your 64-bit Eclipse's settings  (if you have one) from the File menu's 'export' option, under 'General', and then reimport them into your new 32-bit Eclipse.

Sections

If you are using {$>./eclipse} to launch eclipse, then you might run into some issues like "Out of memory error"... Assuming you are working with large projects, its good to set the maximum memory settings for all the other errors to not crop in. Please use "$>./eclipse -vmargs -Xmx512m" to set the maximum memory setting to avoid OOM errors. Or you can always use the shell script, "$>Adobe_Flex_builder.sh" which sets this (along with setting the FP path, Moz_Plugin path etc.)

Submitted by Cosma Colanicchia (not verified) on Fri, 05/22/2009 - 20:59

Permalink

Thank you for the post, Tom.

In my case, running eclipse 32-bit on a archlinux 64 box took a little extra work.. if you see a lot of boxes instead of font glyphs in eclipse, run it from a terminal: you will probably notice some pango-related error. In this case, you should:

1) make sure you have the 32-bit version of pango library installed (for archlinux, lib32-pango)

2) create a gdk-pixbuf.loaders32 file copying the gdk-pixbuf.loaders in same directory (should be /etc/gtk-2.0/), edit it and correct all the library paths to the 32-bit version of the library (in my case, replacing /usr/lib/ with /opt/lib32/usr/lib/)

3) create a /etc/pango32/pangorc file with the following content:

[Pango]
ModuleFiles=/etc/pango32/pango.modules
[PangoX]
AliasFiles=/etc/pango/pangox.aliases

4) create a /etc/pango32/pango.modules file, copying the /etc/pango/pango.modules file and, again, adjusting the library paths with the corresponding 32-bit version

5) finally, add the following environment variables in the previously created eclipse.sh file (adjusting the pats as required by your distribution):

export GTK_PATH=/opt/lib32/usr/lib/gtk-2.0/
export PANGO_RC_FILE=/etc/pango32/pangorc
export GDK_PIXBUF_MODULE_FILE=/etc/gtk-2.0/gdk-pixbuf.loaders32

That's all, now you should be able to start eclipse and see some text :)

You can find more information at this link (credit to the author for the useful article) http://www.debian-administration.org/article/Running_32-bit_Applications_on_64-bit_Debian_GNU/Linux

 

Cosma

 

export GTK_PATH=/emul/ia32-linux/usr/lib/gtk-2.0/
export GDK_PIXBUF_MODULE_FILE=/etc/gtk-2.0/gdk-pixbuf.loaders32
export JAVA_HOME=/usr/lib/jvm/ia32-java-6-sun/
export PATH=$JAVA_HOME/bin:$PATH
./eclipse

 

Pango.modules doesn't seem to exist for the 64-bit libraries. I do get the following warnings, and the splash dialogue is too small, but everything else seems OK.

(eclipse:20905): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_width: assertion `pixbuf != NULL' failed
(eclipse:20905): GdkPixbuf-CRITICAL **: gdk_pixbuf_get_height: assertion `pixbuf != NULL' failed
(eclipse:20905): Gtk-CRITICAL **: gtk_window_resize: assertion `width > 0' failed

This is using eclipse-jee-ganymede-SR2-linux-gtk.tar.gz with all updates applied. I used this to get the Google Web Toolkit working.

Of course, you need the relevant ia32-* packages installed, including 32-bit java.

Great stuff, I had almost given up running Eclipse on Linux amd64 For Debian Lenny and Java 5 run the following commands apt-get install ia32-sun-java5-bin update-java-alternatives -s ia32-java-1.5.0-sun I have installed Eclipse Ganymeded SR 2 into /opt/eclipse, so the path in the script is slighty different. Please note that the script defines JAVA_HOME before the path and makes reference to it there. #!/bin/sh export JAVA_HOME=/usr/lib/jvm/ia32-java-1.5.0-sun export PATH=$JAVA_HOME/bin:$PATH export MOZ_PLUGIN_PATH=/usr/lib/mozilla/plugins cd /opt/eclipse ./eclipse $*

Submitted by coreyman (not verified) on Tue, 06/09/2009 - 18:36

Permalink

Thank you so much for this article. It was exactly what I needed!