org.eclipse.swt.SWTError: No hay más identificadores [MOZILLA_FIVE_HOME=’/usr/lib/firefox’] (java.lang.UnsatisfiedLinkError: No se pudo cargar la biblioteca SWT. Razones:
ACTUALIZACIÓN:
Mi objetivo: Voy a construir el software Zekr con una nueva biblioteca en el Repositorio Debian. Anteriormente, Zekr estaba en el repositorio antiguo de Debian.
Ahora, tengo un código antiguo escrito en java
y lo compilo y ejecuto bajo JDK11 y la nueva versión de la biblioteca de dependencias a través de ant clean;ant compile;ant run
Luego obtengo los siguientes errores:
org.eclipse.swt.SWTError: No more handles [MOZILLA_FIVE_HOME='/usr/lib/firefox'] (java.lang.UnsatisfiedLinkError: Could not load SWT library. Reasons:
no swt-mozilla-gtk-4233 in java.library.path: [lib]
no swt-mozilla-gtk in java.library.path: [lib]
/home/mohsen/.swt/lib/linux/x86_64/libswt-mozilla-gtk-4233.so: libxpcom.so: no se puede abrir el archivo de objeto compartido: No existe el archivo o el directorio
No se puede cargar la biblioteca: /home/mohsen/.swt/lib/linux/x86_64/libswt-mozilla-gtk.so
)
En primer lugar, debes cambiar la línea 92, el atributo source y target a 1.6, y en la misma línea agregar includeantruntime="false"
. Luego, en la directiva javac, agregar <compilerarg value="-Xlint:-options"/>
El código dado utiliza la biblioteca SWT.
¿Cómo puedo solucionarlo?
¿Cómo puedo indicarle a build.xml
que use la nueva versión de mis bibliotecas?
Por cierto, Debian eliminó xulrunner
de sus paquetes.
davy.ai
Para resolver este problema, debes seguir los siguientes pasos:
lib
de tu proyecto.build.xml
para utilizar la nueva versión de las bibliotecas actualizando la ruta de clases. Puedes hacer esto añadiendo la siguiente línea al principio del archivobuild.xml
:Reemplaza
nueva_biblioteca
yantigua_biblioteca
con los nombres de tus bibliotecas.build.xml
para incluir la ruta a la nueva versión de la biblioteca SWT. Puedes hacer esto añadiendo la siguiente línea después de la propiedadclasspath
:Reemplaza
/ruta/a/nueva/biblioteca.swt.jar
con la ruta de tu nueva biblioteca SWT.build.xml
para utilizar la nueva versión de la biblioteca SWT añadiendo la siguiente línea a la tareajavac
:Esto debería solucionar el problema con el error “No more handles”.
En cuanto al problema de Debian con
xulrunner
, es posible que necesites encontrar una biblioteca alternativa para reemplazarla o modificar tu código para utilizar un enfoque diferente. Puedes consultar la documentación o los foros de Debian para obtener sugerencias sobre cómo manejar este problema.