IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Autres Java Discussion :

Du Qt en Java avec Qt Jambi


Sujet :

Autres Java

  1. #21
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Il faut que tu aies le JDK installé sur ton poste et que le répertoire bin de celui ci soit ajouté à ton path. (et éventuellement créer la variable d'environnement JAVA_HOME pointant sur le répertoire d'installation du jdk)
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  2. #22
    Membre habitué Avatar de zodd
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    276
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 276
    Points : 147
    Points
    147
    Par défaut
    oups, merci à vous deux pour l'éclaircissement.. non je n'ai installé que Qt Jambi. je pensais que c'était suffisant. je crois bien que je loupé pas mal de chose (bon je n'ai jamais touché ou écrit une seule ligne de Java jusqu'à présent).


    Bon je suis en train de télécharger le JDK ici:
    http://www.oracle.com/technetwork/ja...s-1880260.html


    et là je regarde ce qui se fait du coté d'eclipse:
    http://www.eclipse.org/downloads/

    Vous me conseillez de commencer par quoi ?
    Pour l'instant j'ai pris le JDK et Eclipes for Java Developpers.
    Stay a while and listen...

  3. #23
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    C'est bon pour commencer, dans elcipse tu aura juste à démarre un nouveau projet puis bouton droit -> add libraries to project -> et tu va choisir qt gambit.

    Je crois que l'installeur de qtgambit t'as juste installé les librairies QT ainsi que les jar de qtgambit

  4. #24
    Membre habitué Avatar de zodd
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    276
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 276
    Points : 147
    Points
    147
    Par défaut
    Bon alors je me suis aidé d'un tutorial, j'ai ajouté le JAR de Qtjambi dans le wizard de création de projet, jusque là tout va bien, j'ai créer une class :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
     
    package projet1;
     
    import com.trolltech.qt.gui.QApplication;
    import com.trolltech.qt.gui.QPushButton;
     
    public class sdz1 {
     
    	public static void main(String[] args) {
    		// TODO Auto-generated method stub
    		QApplication.initialize(args);
     
    	       QPushButton bouton = new QPushButton("Alors, la forme ?");
    	       bouton.show();
     
    	       QApplication.exec();
    	}
     
    }
    et lorsque je run, j'ai ce message:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    Exception in thread "main" java.lang.ExceptionInInitializerError
    	at com.trolltech.qt.QtJambiObject.<clinit>(Unknown Source)
    	at projet1.sdz1.main(sdz1.java:11)
    Caused by: java.lang.RuntimeException: Loading library failed, progress so far:
    No 'qtjambi-deployment.xml' found in classpath, loading libraries via 'java.library.path'
    Loading library: 'QtCore4.dll'...
     - using 'java.library.path'
     
    	at com.trolltech.qt.internal.NativeLibraryManager.loadNativeLibrary(Unknown Source)
    	at com.trolltech.qt.internal.NativeLibraryManager.loadQtLibrary(Unknown Source)
    	at com.trolltech.qt.Utilities.loadQtLibrary(Unknown Source)
    	at com.trolltech.qt.Utilities.loadQtLibrary(Unknown Source)
    	at com.trolltech.qt.QtJambi_LibraryInitializer.<clinit>(Unknown Source)
    	... 2 more
    Caused by: java.lang.UnsatisfiedLinkError: C:\Qt\4.8.5\bin\QtCore4.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
    	at java.lang.ClassLoader$NativeLibrary.load(Native Method)
    	at java.lang.ClassLoader.loadLibrary1(ClassLoader.java:1957)
    	at java.lang.ClassLoader.loadLibrary0(ClassLoader.java:1882)
    	at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1843)
    	at java.lang.Runtime.load0(Runtime.java:795)
    	at java.lang.Runtime.load(Runtime.java:783)
    	at com.trolltech.qt.internal.NativeLibraryManager.loadLibrary_helper(Unknown Source)
    	... 7 more
    je n'ai pas l'impression que Qtjambi est bien ajouté au projet mais lorsque je j'ouvre .classpath, j'ai bien la node classpathentry avec
    kind lib
    path C:/qtjambi-4.7.1/qtjambi-4.7.1.jar
    et dans l'onglet source:
    <classpathentry kind="lib" path="C:/qtjambi-4.7.1/qtjambi-4.7.1.jar"/>
    Stay a while and listen...

  5. #25
    Membre habitué Avatar de zodd
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    276
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 276
    Points : 147
    Points
    147
    Par défaut
    j'ai peut être une idée, ou pas ^^ sur le soucis..

    est ce que le fait que Qt 4.8.5 soit dans le PATH car déjà installé sur mon post peut poser problème?


    Edit: j'ai fait le test en ligne de commande aussi:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    C:\Tests>javac -classpath C:\qtjambi-4.7.1\qtjambi-4.7.1.jar Test.java
     
    C:\Tests>java Test
    Exception in thread "main" java.lang.NoClassDefFoundError: com/trolltech/qt/gui/
    QApplication
            at Test.main(Test.java:7)
    Caused by: java.lang.ClassNotFoundException: com.trolltech.qt.gui.QApplication
            at java.net.URLClassLoader$1.run(URLClassLoader.java:366)
            at java.net.URLClassLoader$1.run(URLClassLoader.java:355)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.net.URLClassLoader.findClass(URLClassLoader.java:354)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
            at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308)
            at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
            ... 1 more
    avec Test.java:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    import com.trolltech.qt.gui.QApplication;
    import com.trolltech.qt.gui.QPushButton;
     
    public class Test
    {
        public static void main(String[] args) {
           QApplication.initialize(args);
     
           QPushButton bouton = new QPushButton("Alors, la forme ?");
           bouton.show();
     
           QApplication.exec();
        }
    }
    Donc si je comprends bien Test.class se créé bien comme il faut et c'est à l’exécution qu'il y a un soucis.


    Edit:
    Après quelques recherches j'ai trouvé qu'il semblerai que le problème viennent du fait que je suis sous windows 7 64 bits et j'avais donc installé le JDK pour 64 bits.

    J'ai donc téléchargé le JDK pour 32 bits et j'ai mis à jour le PATH pour utiliser la version 32 bits.. mais malheureusement ça n'a pas réglé mon problème.


    Désormais j'ai ce message:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     
    C:\Tests>"C:\Program Files (x86)\Java\jdk1.7.0_40\bin\javac.exe" -cp C:\qtjambi-
    4.7.1\qtjambi-4.7.1.jar;C:\qtjambi-4.7.1\qtjambi-win32-msvc2008-4.7.1.jar Test.java
     
    C:\Tests>"C:\Program Files (x86)\Java\jdk1.7.0_40\bin\java.exe" -cp C:\qtjambi-4
    .7.1\qtjambi-4.7.1.jar;C:\qtjambi-4.7.1\qtjambi-win32-msvc2008-4.7.1.jar Test
    Erreur : impossible de trouver ou charger la classe principale Test
    Stay a while and listen...

  6. #26
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Caused by: java.lang.UnsatisfiedLinkError: C:\Qt\4.8.5\bin\QtCore4.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
    Tu essaie de charger une version de QT 32 bits dans une jvm 64 bits, le système d'exploitation interdit cela. Soit tu installe un QT 64bits, soit tu installe un java 32 bits.

  7. #27
    Membre habitué Avatar de zodd
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    276
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 276
    Points : 147
    Points
    147
    Par défaut
    Bin justement, j'ai installé un java 32 bits (cf mon édit du post précédent) et le javac fonctionne mais pas le java. Tu en penses quoi? (en tout cas merci pour ton aide^^)
    Stay a while and listen...

  8. #28
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Pardon, pas vu ton deuxième message.


    Tu as oublié de mettre le répertoire où sont tes classes compilée dans ton cp. Là, tu ne tourne que avec les librairies, sans ton application.


    Vu ta commande javac, la ligne de commande à utiliser est

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    C:\Tests>"C:\Program Files (x86)\Java\jdk1.7.0_40\bin\java.exe" -cp .;C:\qtjambi-4.7.1\qtjambi-4.7.1.jar;C:\qtjambi-4.7.1\qtjambi-win32-msvc2008-4.7.1.jar Test
    pour le compilateur javac, on n'a pas a préciser le répertoire courant, car il assume assez naturellement que ce sont des fichiers qu'on compile et donc regarde le chemin indiqué dans le nom Test.java.
    pour la jvm, c'est tout autre chose, on lui passe un nom de class (Test) et non pas un fichier (Test.class). Du coup, le classpath doit être entièrement défini car c'est le seul endroit où elle ira chercher Test

  9. #29
    Membre habitué Avatar de zodd
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    276
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 276
    Points : 147
    Points
    147
    Par défaut
    ok, merci pour la précision ^^ je comprends mieux le message alors, je teste ça dès que possible^^
    Stay a while and listen...

  10. #30
    Membre habitué Avatar de zodd
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    276
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 276
    Points : 147
    Points
    147
    Par défaut
    ça y est j'ai pu tester... mais maintenant j'ai une fenêtre d'erreur qui s'affiche avec le message suivant:
    "C:\Program Files (x86)\Java\jdk1.7.0_40\bin\java.exe n'est pas une application Win32 valide."

    Il n'y a qu'un bouton "OK" possible. Je ne sais pas si ça vient de la JVM ou bien de mon fichier Test.

    Lorsque je clique sur "ok", j'ai le message suivant dans le terminal:
    "Accès refusé." Je précise que je suis bien administrateur de mon PC.

    J'ai tenté l'opération dans un autre répertoire que sur C: et aussi en cochant dans les propriétés de java.exe l'option "exécuter en tant qu'administrateur" et aussi en mode compatibilité "Windows XP SP3".. etc.. ça n'a rien changé.

    J'aurai aussi une autre question, je suis habitué aux variables d'environnement de Linux avec le LD_LIBRARY_PATH mais j'ai un peu du mal avec Windows de ce coté là car je ne trouve pas d'équivalent. Et je me demande donc comment attribuer "-cp C:\qtjambi-
    4.7.1\qtjambi-4.7.1.jar;C:\qtjambi-4.7.1\qtjambi-win32-msvc2008-4.7.1.jar" à une variable d'environnement sous Windows. j'ai essayé de l'ajouter au PATH de Windows mais ça n'a pas marché.
    Stay a while and listen...

  11. #31
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Par défaut
    Il n'est pas recommandé d'affecter ce genre d'infos dans une variable d'environnement globale.
    En effet, ce pourrait avoir des effets inattendus au niveau des autres applications java, créant des conflits de librairies et ainsi de suite.

    Il est préférable que tu entres ta ligne de commande dans un script bat ou sh suivant le système qui a pour but de lancer l'application avec les bonnes options.
    Ou sinon de packager ton application en tant que jar, et dans le jar de founir un fichier MANIFEST.MF décrivant les jars dont dépend ton application.

    Cf: docs.oracle.com/javase/tutorial/deployment/jar/downman.html

    Et plus globalement: http://docs.oracle.com/javase/tutori...festindex.html
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  12. #32
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par zodd Voir le message
    ça y est j'ai pu tester... mais maintenant j'ai une fenêtre d'erreur qui s'affiche avec le message suivant:
    "C:\Program Files (x86)\Java\jdk1.7.0_40\bin\java.exe n'est pas une application Win32 valide."
    Ton programme n'a rien à voir avec ça, windows ne vois plus java comme une application valide

    T'aurais pas un antivirus foireux qui aurait foutu en l'air java.exe? Parce que là, tout ce que je peux te dire: réinstalle le jdk. Si ça marchait avant (au point de te dire ce qui était pas bon dans ta classe /dans tes librairies native), l'OS ne devrais pas refuser comme ça maintenant de lancer java.exe.

  13. #33
    Membre habitué Avatar de zodd
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    276
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 276
    Points : 147
    Points
    147
    Par défaut
    bon et bien j'ai réinstallé le JDK I586 de java, maintenant en faisant ça:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    C:\Tests>"C:\Program Files\Java\jdk1.7.0_40\bin\javac.exe" -cp C:\qtjambi-4.7.1\qtjambi-4.7.1.jar;C:\qtjambi-4.7.1\qtjambi-win32-msvc2008-4.7.1.jar Test.java
     
    C:\Tests>"C:\Program Files (x86)\Java\jdk1.7.0_40\bin\java.exe" -cp .;C:\qtjambi-4.7.1\qtjambi-4.7.1.jar;C:\qtjambi-4.7.1\qtjambi-win32-msvc2008-4.7.1.jar Test
    ça fonctionne ! un peu bizarre car comme vous pouvez le voir, j'utilise au final le javac de la version 64 bits, et la JVM de la version 32 bits.. y a un truc qui m'échappe encore mais au moins ça tourne, merci beaucoup pour votre aide^^
    En tout cas je prends note aussi pour les variables d'environnement.

    Edit: j'aurai une dernière question (pour l'instant), j'aimerai faire la même chose avec Eclipse comme IDE. Où dois-je paramétrer les class-path et les différents exécutables à aller chercher? (j'ai un peu fouillé mais je n'ai pas trouvé ça très intuitif..)
    Stay a while and listen...

  14. #34
    Expert éminent sénior
    Avatar de sinok
    Profil pro
    Inscrit en
    Août 2004
    Messages
    8 765
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Août 2004
    Messages : 8 765
    Points : 12 977
    Points
    12 977
    Hey, this is mine. That's mine. All this is mine. I'm claiming all this as mine. Except that bit. I don't want that bit. But all the rest of this is mine. Hey, this has been a really good day. I've eaten five times, I've slept six times, and I've made a lot of things mine. Tomorrow, I'm gonna see if I can't have sex with something.

  15. #35
    Expert éminent sénior
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 481
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    Citation Envoyé par zodd Voir le message
    ça fonctionne ! un peu bizarre car comme vous pouvez le voir, j'utilise au final le javac de la version 64 bits, et la JVM de la version 32 bits..
    Ca n'a aucune importance. Java c'est compile une fois, tourne partout (enfin presque). Que tu utilise le javac 32 ou 64 bits, les .class générés seront les mêmes.

    ton seul soucis particulier, avec QT, c'est que les librairies native QT doivent être dans la même version que java.exe

  16. #36
    Membre habitué Avatar de zodd
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    276
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 276
    Points : 147
    Points
    147
    Par défaut
    ok, merci pour vos réponses ^^ c'est déjà beaucoup plus clair
    Stay a while and listen...

Discussions similaires

  1. [Plugin][Débutant] Lancement d'une appli Java avec un plugin
    Par antares24 dans le forum Eclipse Platform
    Réponses: 1
    Dernier message: 29/07/2004, 14h18
  2. Communication C-Java avec Orbit
    Par damsh dans le forum CORBA
    Réponses: 4
    Dernier message: 05/06/2004, 00h24
  3. Exécutable Java avec JRE intégré
    Par clawhammer dans le forum JBuilder
    Réponses: 2
    Dernier message: 06/10/2003, 16h26
  4. Réponses: 2
    Dernier message: 26/05/2003, 19h42

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo