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)
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)
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.
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
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 :
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 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(); } }
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
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
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"/>
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:
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
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
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.
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(); } }
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
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.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
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^^)
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
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.
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 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
ok, merci pour la précision ^^ je comprends mieux le message alors, je teste ça dès que possible^^
ç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é.
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
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.
bon et bien j'ai réinstallé le JDK I586 de java, maintenant en faisant ça:
ç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^^
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
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..)
Réponse dans la FAQ eclipse: eclipse.developpez.com/faq/?page=developpement#buildPathProjetJava
ok, merci pour vos réponses ^^ c'est déjà beaucoup plus clair
Partager