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