SWT UnsatisfiedLinkError: no swt-pi-gtk-3236

4 respostas
the_burns

Boa tarde galera,

Estou com o seguinte problema: estou gerando o .jar da minha aplicação SWT e, após o .jar gerado com toda a estrutura correta de pacotes, na hora de rodar ele dá o seguinte erro:

Exception in thread main java.lang.UnsatisfiedLinkError: no swt-pi-gtk-3236 in java.library.path

at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1682)

at java.lang.Runtime.loadLibrary0(Runtime.java:823)

O MANIFEST.MF está apontando corretamente para os arquivos pois ele procura esse arquivo qdo já está executando o segundo .class da aplicação. De qlqr forma lá vai ele:

Manifest-Version: 1.0
Created-By: Burns
Main-Class: inicializacao.Inicial
Class-Path: ./

a pasta onde está o jar está com todos os jars que a aplicação usa e tbm os arquivos .so.

about.html
ant-1.6.5.jar
ant-antlr-1.6.5.jar
ant-junit-1.6.5.jar
ant-launcher-1.6.5.jar
antlr-2.7.6.jar
antlr.license.txt
ant-swing-1.6.5.jar
apache.license-2.0.txt
apache.license.txt
asm-attrs.jar
asm.jar
c3p0-0.9.1.jar
c3p0.license.txt
cglib-2.1.3.jar
checkstyle-all.jar
cleanimports.jar
commons-collections-2.1.1.jar
commons-logging-1.0.4.jar
concurrent-1.3.2.jar
dom4j-1.6.1.jar
ehcache-1.2.3.jar
ejb3-persistence.jar
fragment.properties
hibernate3.jar
hibernate-annotations.jar
hibernate-commons-annotations.jar
jaas.jar
jaas.licence.txt
jacc-1_0-fr.jar
javassist.jar
jaxen-1.1-beta-7.jar
jboss-cache.jar
jboss-common.jar
jboss-jmx.jar
jboss-system.jar
jgroups-2.2.8.jar
jta.jar
jta.licence.txt
jtds-1.2.2.jar
junit-3.8.1.jar
libswt-atk-gtk-3236.so
libswt-awt-gtk-3236.so
libswt-cairo-gtk-3236.so
libswt-glx-gtk-3236.so
libswt-gnome-gtk-3236.so
libswt-gtk-3236.so
libswt-mozilla-gtk-3236.so
libswt-pi-gtk-3236.so
log4j-1.2.11.jar
mm.mysql-2.0.14-bin.jar
mysql-connector-java-3.1.14-bin.jar
org
org.eclipse.swt_3.2.2.v3236b.jar
org.eclipse.swt.gtk.linux.x86_3.2.2.v3236.jar
oscache-2.1.jar
proxool-0.8.3.jar
_README.txt
sqljdbc.jar
swarmcache-1.0rc2.jar
swt-debug.jar
swt.jar
syndiag2.jar
teste.jar
versioncheck.jar
version.properties
version.txt
xerces-2.6.2.jar
xml-apis.jar
xpp3-1.1.3.3_min.jar
xstream-1.0.1.jar

O que pode ser? Joguei essas libs tbm para o lib do java que está no CLASSPATH e…nada.

Alguém tem alguma idéia ou já passou por isso?

grato

4 Respostas

T

Os arquivos .so são de código binário (executável) e só rodam no Linux; você tem de copiá-los para algum diretório no seu PATH (ou LD_LIBRARY_PATH), não no CLASSPATH.

the_burns

opa, valew pela dica mas o meu path está assim:

vgregorio@vgregorio-desktop:/mnt/sda5/amb_teste$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:$JAVA_HOME:$JAVA_HOME/bin:$JRE_HOME:$CLASSPATH:$MANPATH:/usr/lib/jvm/java-6-sun/bin

o meu CLASSPATH está dentro do PATH. Segue o CLASSPATH:

vgregorio@vgregorio-desktop:/mnt/sda5/amb_teste$ echo $CLASSPATH
/usr/lib/jvm/java-6-sun:/usr/lib/jvm/java-6-sun/lib:/mnt/sda5/amb_teste

eu joguei os arquivos abiaxo dentro da pasta /usr/lib/jvm/java-6-sun/lib, /mnt/sda5/amb_teste e tbm dentro da /usr/local/bin:

libswt-atk-gtk-3236.so libswt-cairo-gtk-3236.so libswt-gnome-gtk-3236.so libswt-mozilla-gtk-3236.so
libswt-awt-gtk-3236.so libswt-glx-gtk-3236.so libswt-gtk-3236.so libswt-pi-gtk-3236.so

e continua dando o erro. Seria algum arquivo diferente desse libswt-pi-gtk-3236.so?

the_burns

opa, achei um artigo aki que contém a solução, porém não muito explícita pq os caras ficaram negociando premio de mega-sena, rs

a idéia é colocar no classpath no manifest o swt.jar que está na mesma pasta que o jar gerado

abraços

the_burns

Opa, tive o problema novamente (formatação de máquina sabe, rs…) e tem uma forma bem mais simples de resolver no linux, copie os .so que vem com o swt pra linux para a pasta /lib e pronto!

Descomplicar às vezes é tão fácil, é só sair da frente do micro e tomar um café, rs

Criado 13 de maio de 2008
Ultima resposta 2 de out. de 2008
Respostas 4
Participantes 2