21 novembre 2005

Comment régler le problème de Swing avec Fedora Core 4

En utilisant Linux Fedora Core 4, je ne pouvait lancer aucune application swing ou awt, à chaque exécution l'application se plantait et me lançait l'exception suivante :
Exception in thread "main" java.lang.UnsatisfiedLinkError: /opt/java/jre/lib/i386/libawt.so: libXp.so.6:
cannot open shared object file: No such file or directory
at java.lang.ClassLoader$NativeLibrary.load(Native Method)
at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1586)
at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1503)
at java.lang.Runtime.loadLibrary0(Runtime.java:788)
at java.lang.System.loadLibrary(System.java:834)
at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:50)
at java.security.AccessController.doPrivileged(Native Method)
at sun.awt.NativeLibLoader.loadLibraries(NativeLibLoader.java:38)
at sun.awt.DebugHelper.(DebugHelper.java:29)
at java.awt.Component.(Component.java:506)

La raison est que Fedora n'utilise pas Xfree86 mais plutôt X.org, et il semblerait que les librairies de la JVM ont été compilés avec la libXp.so.6 utilisée par Xfree86, et qui a été déprécié avec X.org.

Néanmoins il est possible d'installer cette librairie. Pour ce faire il faut disposer de son CD Fedora et d'installer le rpm de ladite librairie.

rpm -ivh xorg-x11-deprecated-libs-6.8.2-31.i386.rpm

Et le tour est joué !