Exception java.lang.UnsatisfiedLinkError sous Linux - Java - Programmation
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
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
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.
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 ?
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)
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.
Marsh Posté le 12-05-2004 à 23:10:34
krosso a écrit : y a-t-il une interface graphique à ton appli ? |
CORRECTION :
-Djava.awt.headless=true
Ooops...
Marsh Posté le 13-05-2004 à 09:47:13
krosso a écrit : CORRECTION : |
ç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)
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 : |
ben oui
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...
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.
Marsh Posté le 13-05-2004 à 10:59:39
faut installer les librairies X, oui.
le serveur en entier, c'est pas la peine.
Marsh Posté le 13-05-2004 à 11:01:43
winloto a écrit : |
c'est pour ca que j'ai dit dans mon 2eme message que si t'étais pas admin, c'était DTC.
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 ?
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.
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 ?
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"
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 ?
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.