Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#1 Le 20/11/2008, à 17:38

Lejimi

Swing et Ubuntu

Bonjour,

dans le but de me remettre au Java, j'ai installé Eclipse sur ma bécane. Le soft marche impeccablement, mais si je créée un truc simple en Swing (une fenêtre avec un menu déroulant par exemple) mon menu ne se déroule pas, ma fenêtre ne se rafraîchi pas après réduction et elle refuse de se fermer.

Apparemment le problème et ses solution sont connus ( http://doc.ubuntu-fr.org/compiz_fusion_problemes_connus ) mais en suivant la démarche proposée, je n'obtiens pas d'amélioration.

Sur un terminal j'obtiens ceci :

sam@sam-desktop:~$ javac -version
javac 1.6.0_0-internal
sam@sam-desktop:~$ java -version
java version "1.6.0_0"
IcedTea6 1.3.1 (6b12-0ubuntu6) Runtime Environment (build 1.6.0_0-b12)
OpenJDK Client VM (build 1.6.0_0-b12, mixed mode, sharing)

Utiliserai-je un JDK (Eclipse installe bien le sien ?) ou un JRE qui pose problème ?

Merci


Gloire à qui n'ayant pas d'idéal sacro-saint
Se borne à ne pas trop emmerder ses voisins

Hors ligne

#2 Le 20/11/2008, à 19:23

rniamo

Re : Swing et Ubuntu

t'as essayé avec metacity à la place de compiz pour voir si ça venait de là ?


< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#3 Le 20/11/2008, à 19:44

Lejimi

Re : Swing et Ubuntu

Là, je dois avouer que tu me parle un peu hébreu... Tu peux détailler un poil plus ?


Gloire à qui n'ayant pas d'idéal sacro-saint
Se borne à ne pas trop emmerder ses voisins

Hors ligne

#4 Le 20/11/2008, à 19:47

rniamo

Re : Swing et Ubuntu

alt+f2 "metacity --replace"
alt+f2 "compiz --replace" pour restaurer après tes tests


< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#5 Le 20/11/2008, à 19:52

Lejimi

Re : Swing et Ubuntu

En fait, je pense déjà être sous Metacity, puisque c'est le gestionnaire de fenêtre par défaut d'Ubuntu et que je n'ai jamais installé ou activé Compiz... Comment savoir quel gestionnaire j'utilise ?

En tous cas, aucune des deux commandes proposées ne résoud mon problème... (ça signifie quoi les deux "-" ? Un seul c'est pour introduire une option, mais deux ?)

Dernière modification par Lejimi (Le 20/11/2008, à 20:03)


Gloire à qui n'ayant pas d'idéal sacro-saint
Se borne à ne pas trop emmerder ses voisins

Hors ligne

#6 Le 20/11/2008, à 22:23

rniamo

Re : Swing et Ubuntu

un seul- c'est le nom court et -- le long (en général).

T'es sûr de ton code ?


< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#7 Le 20/11/2008, à 22:43

Lejimi

Re : Swing et Ubuntu

Mon code c'est un JFrame tout bête avec une JMenuBar toute con et un JMenu débile auquel j'ajoute deux JMenuItem eux-même pas très malins. Et puis un code exemple copié-collé chez Sun himself se comporte tout aussi mal.

Par contre, je n'arrive toujours pas à savoir quel gestionnaire est effectivement en fonction. Il y a une commande à taper pour ça ?


Gloire à qui n'ayant pas d'idéal sacro-saint
Se borne à ne pas trop emmerder ses voisins

Hors ligne

#8 Le 20/11/2008, à 22:45

rniamo

Re : Swing et Ubuntu

regarde dans gnome-system-monitor et cherche, compiz, emerald, metacity (gnome), kvm (kde)...

ou un ps+grep pour les g33k wink


< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#9 Le 21/11/2008, à 07:42

Lejimi

Re : Swing et Ubuntu

OK, avec le moniteur système, j'ai pu vérifier que le basculement de metacity à compiz se fait sans problèmes (par défaut au démarrage, je suis sous Metacity)

Par contre le problème subsiste avec ces deux gestionnaires alors que je n'ai rien trouvé sur une éventuelle incompatibilité entre Metacity et Swing.

Faut-il dans ce cas chercher du côté de mes jre et JDK ?


Gloire à qui n'ayant pas d'idéal sacro-saint
Se borne à ne pas trop emmerder ses voisins

Hors ligne

#10 Le 21/11/2008, à 18:30

rniamo

Re : Swing et Ubuntu

t'as quel jdk ? sun-java6-jdk

si tu peux (veux) poste ton code, je regarderais sur mon pc.


< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#11 Le 21/11/2008, à 20:45

Lejimi

Re : Swing et Ubuntu

J'ai installé l'Open JDK à partir de Synaptic, mais j'ai l'impression qu'Eclipse utilise son propre compilateur. Peut-être que ça aidera :

sam@sam-desktop:~$ javac -version
javac 1.6.0_0-internal
sam@sam-desktop:~$ java -version
java version "1.6.0_0"
IcedTea6 1.3.1 (6b12-0ubuntu6) Runtime Environment (build 1.6.0_0-b12)
OpenJDK Client VM (build 1.6.0_0-b12, mixed mode, sharing)

Gloire à qui n'ayant pas d'idéal sacro-saint
Se borne à ne pas trop emmerder ses voisins

Hors ligne

#12 Le 21/11/2008, à 22:42

rniamo

Re : Swing et Ubuntu

t'as essayé de compiler en console (javac *.java) ?


< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#13 Le 21/11/2008, à 23:02

Lejimi

Re : Swing et Ubuntu

Je ne pense pas que ça puise changer quelque-chose, mais ça ne mange pas de pain d'essayer...


Gloire à qui n'ayant pas d'idéal sacro-saint
Se borne à ne pas trop emmerder ses voisins

Hors ligne

#14 Le 21/11/2008, à 23:15

rniamo

Re : Swing et Ubuntu

je propose ça parce que tu dis qu'eclipse a son compilateur ... mais je ne pense pas non plus.


< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#15 Le 22/11/2008, à 14:00

Lejimi

Re : Swing et Ubuntu

Donc voici ce que cela donne en console, ça compile sans problème mais je rencontre une erreur d'exécution (erreur qui ne se manifeste pas sous Eclipse) :

sam@sam-desktop:~/workspace/Fenetre/fr/sam/bidouilles$ javac FrameDemo.java
sam@sam-desktop:~/workspace/Fenetre/fr/sam/bidouilles$ java FrameDemo
Exception in thread "main" java.lang.NoClassDefFoundError: FrameDemo (wrong name: fr/sam/bidouilles/FrameDemo)
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(ClassLoader.java:637)
	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
	at java.net.URLClassLoader.defineClass(URLClassLoader.java:277)
	at java.net.URLClassLoader.access$000(URLClassLoader.java:73)
	at java.net.URLClassLoader$1.run(URLClassLoader.java:212)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(URLClassLoader.java:205)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:323)
	at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:294)
	at java.lang.ClassLoader.loadClass(ClassLoader.java:268)
	at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:336)
Could not find the main class: FrameDemo. Program will exit.

Gloire à qui n'ayant pas d'idéal sacro-saint
Se borne à ne pas trop emmerder ses voisins

Hors ligne

#16 Le 22/11/2008, à 14:11

®om

Re : Swing et Ubuntu

Montre-nous le code de FrameDemo (y compris la déclaration du package tout en haut) smile

Hors ligne

#17 Le 22/11/2008, à 14:20

Lejimi

Re : Swing et Ubuntu

C'est un code que j'ai récupéré sur le site de SUN, histoire de m'assurer justement que mon code à moi n'était pas en cause. La déclaration de package est celle qu'Eclipse a créée automatiquement.


/*
 * Copyright (c) 1995 - 2008 Sun Microsystems, Inc.  All rights reserved.
 *
 * Redistribution and use in source and binary forms, with or without
 * modification, are permitted provided that the following conditions
 * are met:
 *
 *   - Redistributions of source code must retain the above copyright
 *     notice, this list of conditions and the following disclaimer.
 *
 *   - Redistributions in binary form must reproduce the above copyright
 *     notice, this list of conditions and the following disclaimer in the
 *     documentation and/or other materials provided with the distribution.
 *
 *   - Neither the name of Sun Microsystems nor the names of its
 *     contributors may be used to endorse or promote products derived
 *     from this software without specific prior written permission.
 *
 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 * IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO,
 * THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
 * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE COPYRIGHT OWNER OR
 * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 * LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 */ 
package fr.sam.bidouilles;

import java.awt.BorderLayout;
import java.awt.Dimension;

import javax.swing.JFrame;
import javax.swing.JLabel;

/* FrameDemo.java requires no other files. */
public class FrameDemo {
    /**
     * Create the GUI and show it.  For thread safety,
     * this method should be invoked from the
     * event-dispatching thread.
     */
    private static void createAndShowGUI() {
        //Create and set up the window.
        JFrame frame = new JFrame("FrameDemo");
        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        JLabel emptyLabel = new JLabel("");
        emptyLabel.setPreferredSize(new Dimension(175, 100));
        frame.getContentPane().add(emptyLabel, BorderLayout.CENTER);

        //Display the window.
        frame.pack();
        frame.setVisible(true);
    }

    public static void main(String[] args) {
        //Schedule a job for the event-dispatching thread:
        //creating and showing this application's GUI.
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                createAndShowGUI();
            }
        });
    }
}

Dernière modification par Lejimi (Le 22/11/2008, à 14:42)


Gloire à qui n'ayant pas d'idéal sacro-saint
Se borne à ne pas trop emmerder ses voisins

Hors ligne

#18 Le 22/11/2008, à 14:31

®om

Re : Swing et Ubuntu

Dans ce cas :

$ cd ~/workspace/Fenetre
$ java fr.sam.bidouilles.MaFenetre

Hors ligne

#19 Le 22/11/2008, à 14:50

Lejimi

Re : Swing et Ubuntu

Cette fois Java trouve ma classe Frame Demo mais j'obtiens ce message d'erreur (le chemin vers la librairie est bon jusqu'à i386, ensuite pas plus de "motif21" que de beurre aux fesses)  :

sam@sam-desktop:~/workspace/Fenetre$ java fr.sam.bidouilles.FrameDemo
Exception in thread "main" java.lang.UnsatisfiedLinkError: Can't load library: /usr/lib/jvm/java-6-openjdk/jre/lib/i386/motif21/libmawt.so
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1666)
	at java.lang.Runtime.load0(Runtime.java:787)
	at java.lang.System.load(System.java:1022)
	at java.lang.ClassLoader$NativeLibrary.load(Native Method)
	at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1767)
	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1684)
	at java.lang.Runtime.loadLibrary0(Runtime.java:840)
	at java.lang.System.loadLibrary(System.java:1047)
	at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:67)
	at sun.security.action.LoadLibraryAction.run(LoadLibraryAction.java:47)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.Toolkit.loadLibraries(Toolkit.java:1610)
	at java.awt.Toolkit.<clinit>(Toolkit.java:1632)
	at java.awt.EventQueue.invokeLater(EventQueue.java:957)
	at javax.swing.SwingUtilities.invokeLater(SwingUtilities.java:1289)
	at fr.sam.bidouilles.FrameDemo.main(FrameDemo.java:63)

(Pour le code FrameDemo de Sun, j'avais copié le mauvais machin, c'est rectifié dans le message concerné, et on retrouve bien le invokeLater() )

Dernière modification par Lejimi (Le 22/11/2008, à 15:00)


Gloire à qui n'ayant pas d'idéal sacro-saint
Se borne à ne pas trop emmerder ses voisins

Hors ligne

#20 Le 22/11/2008, à 18:58

rniamo

Re : Swing et Ubuntu

/usr/lib/jvm/java-6-openjdk/jre/lib/i386/motif21/libmawt.so
existe ?


< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#21 Le 22/11/2008, à 20:11

Lejimi

Re : Swing et Ubuntu

Non, justement jusqu'à i386 le chemein est bon, mais le dossier motif21 n'existe pas et le fichier libmawt.so non plus... Il semble donc que ma JVM recherche un bibliothèque qui n'existe pas... ou qu'elle la cherche au mauvaise endroit...

Faut-il que j'essaye une autre JVM ?


Gloire à qui n'ayant pas d'idéal sacro-saint
Se borne à ne pas trop emmerder ses voisins

Hors ligne

#22 Le 22/11/2008, à 20:29

rniamo

Re : Swing et Ubuntu

enlève openjdk et mets sun-java6-jdk

edit : verifie la config d'eclipse après

Dernière modification par rniamo (Le 22/11/2008, à 20:29)


< Quelques un des mes programmes  | Cuisine Facile (pour les gourmands) | Fast MVC for PHP >
        \   ^__^
         \  (o o)\_______
            (___)\            )\

Hors ligne

#23 Le 22/11/2008, à 21:12

®om

Re : Swing et Ubuntu

Normalement openjdk marche très bien (je l'utilise et je développe avec).
Par contre le eclipse des dépôts il est un peu pourri (si ça a pas changé), prend le .tar.gz sur le site.

Hors ligne

#24 Le 22/11/2008, à 21:20

Lejimi

Re : Swing et Ubuntu

Là, j'ai des problèmes sans utiliser Eclipse... mais dans les deux cas ça a l'air de tourner autour AWT...

Je suis en train de charger le SDK de Sun. On va voir...

Accessoirement : comment configurer Eclipse pour lui firae utiliser un autre compilateur ? Il y a une floppée de menus, c'est caché dans lequel ?


Gloire à qui n'ayant pas d'idéal sacro-saint
Se borne à ne pas trop emmerder ses voisins

Hors ligne

#25 Le 22/11/2008, à 21:28

Lejimi

Re : Swing et Ubuntu

J'ai remplacé l'open jre par le jre de sun et là, ma fenêtre s'affiche et répond aux clics. Par contre, j'obtiens quand-même un message d'erreur en console (même erreur en compilant avec le JDK de Sun) :

sam@sam-desktop:~/essai$ java Fenetre
Warning: Cannot convert string "-b&h-luxi sans-medium-r-normal--*-140-*-*-p-*-iso8859-1" to type FontStruct
Warning: Cannot convert string "-arphic-ar pl shanheisun uni-medium-r-normal--*-*-*-*-p-*-iso10646-1" to type FontStruct
Warning: Cannot convert string "-arphic-ar pl uming uni-medium-r-normal--*-*-*-*-p-*-iso10646-1" to type FontStruct
Warning: Cannot convert string "-sazanami-gothic-medium-r-normal--*-140-*-*-c-*-jisx0208.1983-0" to type FontStruct
Warning: Cannot convert string "-baekmuk-gulim-medium-r-normal--*-140-*-*-c-*-ksc5601.1987-0" to type FontStruct

Par contre en changeant de JVM, mes composants Swing se comportent enfin normalement !

Je viens de faire l'essai sous Eclipse avec le jre de Sun, là aussi Swing se comporte normalement, mais j'obtiens les même messages "warning"

C'est bien mon open jdk qui merde en fait il cherche quelque-chose qui n'existe pas...



Edit du dimanche matin : j'ai ré-essayé ce matin sun JDK + sun JVM, mais cette fois sous Compiz. Là encore ça marche (avec toutefois les "warnings" du dessus) Un indice de plus qui pointe vers un souci d'Open JDK.

Dernière modification par Lejimi (Le 23/11/2008, à 09:19)


Gloire à qui n'ayant pas d'idéal sacro-saint
Se borne à ne pas trop emmerder ses voisins

Hors ligne