es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

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.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Para resolver este problema, debes seguir los siguientes pasos:

    1. Añade la nueva versión de tus bibliotecas al directorio lib de tu proyecto.
    2. Modifica el archivo 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 archivo build.xml:
    <property name="classpath" value="lib/nueva_biblioteca.jar:lib/antigua_biblioteca.jar"></property>
    

    Reemplaza nueva_biblioteca y antigua_biblioteca con los nombres de tus bibliotecas.

    1. Modifica el archivo 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 propiedad classpath:
    <path id="swt.path">
        <pathelement location="/ruta/a/nueva/biblioteca.swt.jar"></pathelement>
    </path>
    

    Reemplaza /ruta/a/nueva/biblioteca.swt.jar con la ruta de tu nueva biblioteca SWT.

    1. Modifica el archivo build.xml para utilizar la nueva versión de la biblioteca SWT añadiendo la siguiente línea a la tarea javac:
    <classpath refid="swt.path"></classpath>
    

    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.

Comments are closed.