Erro no Eclipse: java.lang.UnsatisfiedLinkError: Cannot load 64-bit SWT libraries on 32-bit JVM

Galera,

migrei para o ubuntu 9.10 porque eu estava muito preguiçoso com o windows… além de não utilizar linux há um bom tempo.

obviamente, a migração me deu muito trabalho (ainda apanho para algumas formas de conexão de rede com o ubuntu), mas, no geral, anda bem.

entretanto, enfrentei um problema ao retirar a JVM que vinha instalada no ubuntu (OpenJVM) e deixar a mais nova da Sun (1.6.0_16) como a primária do sistema pois toda hora que ia abrir o eclipse dava o erro no log:

[code]!SESSION 2009-12-14 10:26:52.355 -----------------------------------------------
eclipse.buildId=M20090917-0800
java.version=1.6.0_16
java.vendor=Sun Microsystems Inc.
BootLoader constants: OS=linux, ARCH=x86_64, WS=gtk, NL=pt_BR
Framework arguments: -debugLog
Command-line arguments: -os linux -ws gtk -arch x86_64 -debugLog

!ENTRY org.eclipse.osgi 4 0 2009-12-14 10:26:54.672
!MESSAGE Application error
!STACK 1
java.lang.UnsatisfiedLinkError: Cannot load 64-bit SWT libraries on 32-bit JVM
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:179)
at org.eclipse.swt.internal.Library.loadLibrary(Library.java:159)
at org.eclipse.swt.internal.C.<clinit>(C.java:21)
at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:63)
at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:54)
at org.eclipse.swt.widgets.Display.<clinit>(Display.java:131)
at org.eclipse.ui.internal.Workbench.createDisplay(Workbench.java:516)
at org.eclipse.ui.PlatformUI.createDisplay(PlatformUI.java:161)
at org.eclipse.ui.internal.ide.application.IDEApplication.createDisplay(IDEApplication.java:143)
at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:88)
at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:559)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:514)
at org.eclipse.equinox.launcher.Main.run(Main.java:1311)
at org.eclipse.equinox.launcher.Main.main(Main.java:1287)[/code]

acredito que o SWT que eu tenho é 64 bits, a JVM e o SO é 32 bits… só tenho certeza do último, mas acho que a JVM também é 32 bits.

depois de apanhar horrores, com várias dicas de outros fóruns, modifiquei a versão do swt que está na pasta de plugins, baixando a versão 32 bits (x_86) no site do SWT:

http://www.eclipse.org/swt/

e procurar o arquivo parecido com org.eclipse.swt.gtk.linux.x86_64_[última versão].vXXXXX.jar com o swt.jar que eu baixei.

funcionou belezinha, mas é uma gambi gigante.

o que há de errado na configuração de sistema? lembrando que fiz praticamente tudo pelo synaptics e ainda não aprendi a procurar por versões específicas nele.

abraços!

Veja qual versao do eclipse voce baixou, existe a versao de 32 e 64 bits para download no site.

então…

baixei pelo synaptics. e com certeza deve ter instalado a 32, porque meu ubuntu é 32 (ele estava instalado na pasta ‘/usr/lib/eclipse’).

o que estrala tudo é que minha máquina é 64…

Tem alguma coisa estranha aí. Se o Ubuntu é de 32bit, ele deveria baixar programas somente de 32bit. Se o Ubuntu for de 64bit, ele só deve baixar programas de 64bit. O Ubuntu consegue resolver isso automaticamente, normalmente.

Aqui em casa eu tenho um desktop com Ubuntu 32bit e o meu notebook está com Ubuntu 64bit. Consigo utilizar o Eclipse normalmente em ambos sistemas.

Você mencionou que seu Ubuntu é de 32bit. No entanto, os parâmetros escritos no log do Eclipse dizem que é de 64bit. É isso mesmo?

Bom, o que estou querendo dizer é que esse tipo de erro não é comum. Somente quando se tenta instalar programas manualmente, mesclando programas de uma arquitetura em sistema com outra.

pois é…

por isso utilizei só o synaptics…

pode ser que meu eclipse.ini tenha algo… ahh, e minha arquitetura é 64 bits.

-startup plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar --launcher.library plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.0.200.v20090519 -showsplash org.eclipse.platform --launcher.XXMaxPermSize 725m -startup --launcher.library -showsplash org.eclipse.platform --launcher.XXMaxPermSize 725m -startup /usr/lib/eclipse/plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar --launcher.library /usr/lib/eclipse/plugins/org.eclipse.equinox.launcher.gtk.linux.x86_64_1.0.200.v20090519 -vmargs -Dorg.eclipse.equinox.p2.reconciler.dropins.directory=//usr/share/eclipse/dropins -Xms40m -Xmx725m -Dorg.eclipse.ecf.provider.filetransfer.excludeContributors=org.eclipse.ecf.provider.filetransfer.httpclient -Dorg.eclipse.equinox.p2.reconciler.dropins.directory=//usr/share/eclipse/dropins -Dhttp.proxyPort=8080 -Dhttp.proxyHost=192.168.0.1 -Dhttp.nonProxyHosts=localhost|127.0.0.1

tem poucas horas que eu meio que sinto falta do windows…

PASSOU, PASSOU!

;D

dondiego, dá uma olhada nesse link aqui e tenta utilizar a solução que deram:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=291257

Lembrei-me de um problema na utilização do Eclipse, depois do upgrade pro 9.10, mas não sei se é o mesmo problema que você está tendo.

caraca…

quis entrar no meio daquele bug, mas só tem cacique!

e o que eu fiz é um ‘workaround’.

meu build do eclipse é de julho. agora vou tentar atualizá-lo para um mais novo.

[UPDATE]

tentei atualizar o build. não achou nada…
tem cara naquele bug com build de 2 de dezembro.

vou dar uma pesquisada a mais.

(ainda bem que tô sem projeto :slight_smile:

Vc disse que tá usando o Eclipse do Synaptics né? Tenta baixar o Eclipse manualmente, pra ver se tá funcionando.

Boa tarde galera, estou com um problema semelhante. O mesmo acontece com o netbeans e com o eclipse. Não sei o que fazer mais.

O erro é o seguinte:

java.lang.UnsatisfiedLinkError: /home/joaquim/wtk/bin/sublime.so: /home/joaquim/wtk/bin/sublime.so: classe ELF errada: ELFCLASS32 (Possible cause: architecture word width mismatch)
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1803)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1699)
at java.lang.Runtime.load0(Runtime.java:770)
at java.lang.System.load(System.java:1003)
at com.sun.kvem.Sublime.<init>(Sublime.java:29)
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at java.lang.Class.newInstance0(Class.java:355)
at java.lang.Class.newInstance(Class.java:308)
at com.sun.kvem.Lime.createLime(Lime.java:40)
at com.sun.kvem.KVMBridge.<init>(KVMBridge.java:46)
at com.sun.kvem.KVMBridge.getBridge(KVMBridge.java:37)
at com.sun.kvem.midp.MIDP.run(MIDP.java:699)
at com.sun.kvem.environment.EmulatorInvoker.runEmulatorImpl(EmulatorInvoker.java:107)
at com.sun.kvem.environment.EmulatorInvoker.main(EmulatorInvoker.java:135)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.sun.kvem.environment.JVM.main(JVM.java:103)

Se vcs puder me ajudar, eu agradeço.