Exception java.lang.UnsatisfiedLinkError sous Linux

Exception java.lang.UnsatisfiedLinkError sous Linux - Java - Programmation

Marsh Posté le 12-05-2004 à 18:01:58    

Bonjour,
 
Le problème porte sur une application Java développée sous JBuilderX.
 
Lancée sur mon ordinateur (Windows XP), elle fonctionne très bien, sans aucun problème particulier.
 
J'ai crée une archive nommée Search.jar et qui possède toutes les classes nécessaires pour fonctionner : elle fonctionne sous mon ordinateur.
 
Cependant, ce programme est destiné à être executé sur un serveur tournant sous Linux (RedHat 7.2) et auquel j'ai accès via SSH.
 
Sur ce serveur, j'ai installé l'interprêteur Java sous forme de RPM : j2re-1_4_2_04-linux-i586-rpm.bin
 
Ensuite, j'ai ajouté au fichier de configuration /etc/profile ceci :
 
JAVA_HOME=/usr/java/j2re1.4.2_04
J2RE_HOME=/usr/java/j2re1.4.2_04
PATH=$PATH:$/usr/java/j2re1.4.2_04/bin
export PATH=/usr/java/j2re1.4.2_04/bin:$PATH
# export JAVA_HOME PATH
JAVA_DIR=/usr/java/j2re1.4.2_04
JRE=/usr/java/j2re1.4.2_04
J2RE=/usr/java/j2re1.4.2_04
JAVA=/usr/java/j2re1.4.2_04
export JRE

 
Le lancement de l'archive s'effectue commme ceci en ligne de commande via SSH, dans le répertoire dans lequel est mon archive Search.jar :
java -jar Search.jar
 
L'execution commence bien, mais se poursuit par l'exception suivante :  
Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/java/j2re1.4.2_0
e or directory
        at java.lang.ClassLoader$NativeLibrary.load(Native Method)
        at java.lang.ClassLoader.loadLibrary0(Unknown Source)
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.lang.System.loadLibrary(Unknown Source)
        at sun.security.action.LoadLibraryAction.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.awt.NativeLibLoader.loadLibraries(Unknown Source)
        at sun.awt.DebugHelper.<clinit>(Unknown Source)
        at java.awt.EventQueue.<clinit>(Unknown Source)
        at javax.swing.SwingUtilities.isEventDispatchThread(Unknown Source)
        at javax.swing.text.StyleContext.reclaim(Unknown Source)
        at javax.swing.text.StyleContext.addAttribute(Unknown Source)
        at javax.swing.text.html.StyleSheet.addAttribute(Unknown Source)
        at javax.swing.text.StyleContext$NamedStyle.addAttribute(Unknown Source)
        at javax.swing.text.StyleContext$NamedStyle.setName(Unknown Source)
        at javax.swing.text.StyleContext$NamedStyle.<init>(Unknown Source)
        at javax.swing.text.StyleContext.addStyle(Unknown Source)
        at javax.swing.text.StyleContext.<init>(Unknown Source)
        at javax.swing.text.html.StyleSheet.<init>(Unknown Source)
        at javax.swing.text.html.HTMLDocument.<init>(Unknown Source)
        at search.HTMLDocumentLinks.<init>(HTMLDocumentLinks.java:64)
        at search.Crawler.main(Crawler.java:175)

 
L'interprêteur ne semble pas arriver à executer le constructeur de la classe HTMLDocumentLinks qui hérite de javax.swing.text.html.HTMLDocument
 
Une idée de la cause de cette exception, et comment y remédier ?
 
Merci.

Reply

Marsh Posté le 12-05-2004 à 18:01:58   

Reply

Marsh Posté le 12-05-2004 à 18:15:57    

tu utilises awt, et X n'est pas installé sur le serveur.
 
accessoirement, y'a un bout du message d'erreur qui manque

Reply

Marsh Posté le 12-05-2004 à 21:18:09    

- Peux-tu m'expliquer succintement comment installer X sur le serveur ?
 
- Ou alors, existe-t-il une classe équivalente (ou meilleure) à HTMLDocument ?
 
- Question subsidiaire : existe-t-il une classe qui permette de manipuler des documents XHTML ? En effet la classe HTMLDocument bug avec des document XHTML
 

Reply

Marsh Posté le 12-05-2004 à 21:22:27    

si t'es pas admin de la machine, tu peux pas.
pour les autres questions, je passe.

Reply

Marsh Posté le 12-05-2004 à 21:24:24    

Je suis totalement maitre de la machine, j'ai d'ailleurs installé moi-même l'interprêteur Java ;o)
 
Qq'un peut-il m'expliquer comment installer AWT ?


Message édité par winloto le 12-05-2004 à 22:27:06
Reply

Marsh Posté le 12-05-2004 à 22:08:00    

D'après les informations que j'ai pêchées, AWT est en natif dans JRE... le problème ne doit pas venir de là !
 
Quand tu parles de X, tu parles de X-window de Linux, ou tu parles d'AWT ?...  
 
A votre bon coeur m'sieurs dames... je patauge ! Si toi qui lit ce message tu connais la réponse à mes problèmes, n'hésites pas à me la donner ;o)


Message édité par winloto le 12-05-2004 à 22:27:54
Reply

Marsh Posté le 12-05-2004 à 23:08:11    

y a-t-il une interface graphique à ton appli ?
 
si la réponse est non passe à la jvm le paramètre suivant :
-Djava.awt.headless=false
 
K.
 

Reply

Marsh Posté le 12-05-2004 à 23:10:34    

krosso a écrit :

y a-t-il une interface graphique à ton appli ?
 
si la réponse est non passe à la jvm le paramètre suivant :
-Djava.awt.headless=false
 
K.


 
CORRECTION :
 
-Djava.awt.headless=true
 
 
Ooops...

Reply

Marsh Posté le 13-05-2004 à 09:47:13    

krosso a écrit :

CORRECTION :
 
-Djava.awt.headless=true
 
 
Ooops...


 
ça ne fonctionne pas mieux...
 
java -jar -Djava.awt.headless=true  Search.jar  
 

Exception in thread "main" java.lang.UnsatisfiedLinkError: /usr/java/j2re1.4.2_04/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(Unknown Source)
        at java.lang.ClassLoader.loadLibrary(Unknown Source)
        at java.lang.Runtime.loadLibrary0(Unknown Source)
        at java.lang.System.loadLibrary(Unknown Source)
        at sun.security.action.LoadLibraryAction.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at sun.awt.NativeLibLoader.loadLibraries(Unknown Source)
        at sun.awt.DebugHelper.<clinit>(Unknown Source)
        at java.awt.EventQueue.<clinit>(Unknown Source)
        at javax.swing.SwingUtilities.isEventDispatchThread(Unknown Source)
        at javax.swing.text.StyleContext.reclaim(Unknown Source)
        at javax.swing.text.StyleContext.addAttribute(Unknown Source)
        at javax.swing.text.html.StyleSheet.addAttribute(Unknown Source)
        at javax.swing.text.StyleContext$NamedStyle.addAttribute(Unknown Source)
        at javax.swing.text.StyleContext$NamedStyle.setName(Unknown Source)
        at javax.swing.text.StyleContext$NamedStyle.<init>(Unknown Source)
        at javax.swing.text.StyleContext.addStyle(Unknown Source)
        at javax.swing.text.StyleContext.<init>(Unknown Source)
        at javax.swing.text.html.StyleSheet.<init>(Unknown Source)
        at javax.swing.text.html.HTMLDocument.<init>(Unknown Source)
        at search.HTMLDocumentLinks.<init>(HTMLDocumentLinks.java:64)
        at search.Crawler.main(Crawler.java:176)


Message édité par winloto le 13-05-2004 à 09:54:25
Reply

Marsh Posté le 13-05-2004 à 10:49:10    

winloto a écrit :

D'après les informations que j'ai pêchées, AWT est en natif dans JRE... le problème ne doit pas venir de là !


il utilise quand même les libraries X sous unix (faut bien qu'il puisse afficher quelque chose, non ?)
 

Citation :


Quand tu parles de X, tu parles de X-window de Linux


ben oui  :??:  
 

Reply

Marsh Posté le 13-05-2004 à 10:49:10   

Reply

Marsh Posté le 13-05-2004 à 10:49:58    

Citation :

libXp.so.6: cannot open shared object file: No such file or directory


c'est pourtant clair...

Reply

Marsh Posté le 13-05-2004 à 10:58:17    

Peux-tu m'expliquer la solution ?
Faut-il installer X-window ou puis-je tout somplement choper le fichier qui manque qq part et le mettre où il faut ?
 
Je précise que c'est un serveur web auquel je n'ai accès que par SSH.


Message édité par winloto le 13-05-2004 à 10:59:38
Reply

Marsh Posté le 13-05-2004 à 10:59:39    

faut installer les librairies X, oui.
le serveur en entier, c'est pas la peine.

Reply

Marsh Posté le 13-05-2004 à 11:01:43    

winloto a écrit :


Je précise que c'est un serveur web auquel je n'ai accès que par SSH.


c'est pour ca que j'ai dit dans mon 2eme message que si t'étais pas admin, c'était DTC.

Reply

Marsh Posté le 13-05-2004 à 11:01:54    

t'as l'air de t'y connaitre, tu peux me dire où trouver ces librairies et comment les installer ?

Reply

Marsh Posté le 13-05-2004 à 11:03:14    

non. demande a ton admin, de toutes facons si tu n'as pas les droits tu pourras pas le faire.

Reply

Marsh Posté le 13-05-2004 à 11:05:14    

J'ai précisé que j'étais admin, j'ai tout pouvoir sur la machine. Je peux donc TOUT FAIRE ! Simplement la machine n'est pas à coté de moi mais à distance, j'y accède via SSH.
La question pour moi est de savoir COMMENT installer X ?


Message édité par winloto le 13-05-2004 à 11:07:34
Reply

Marsh Posté le 13-05-2004 à 11:07:20    

bah sur redhat, tu récuperes les rpm (je sais pas lesquels, ni ou les trouver, désolé) et tu les installes par "rpm -ivh lespaquets"

Reply

Marsh Posté le 13-05-2004 à 11:07:54    

Mârci

Reply

Marsh Posté le 13-05-2004 à 11:27:25    

lorill a écrit :

bah sur redhat, tu récuperes les rpm (je sais pas lesquels, ni ou les trouver, désolé) et tu les installes par "rpm -ivh lespaquets"


 
Par contre rassures moi, je n'aurai pas à lancer X window pour executer mon programme Java j'espère ? Le simple fait qu'il soit présent sur le serveur mais inactif suffira ?

Reply

Marsh Posté le 13-05-2004 à 11:30:41    

oui

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed