Eclipse, lancer Java en 32 bits

ViPHP
ViPHP | 4674 Messages

27 sept. 2009, 17:03

Hey :-),

Je dois travailler sous Eclipse pour un projet (on ne rigole pas au fond !). Ma JVM est en 64 bits et SWT n'aime pas ça. Je voudrais juste dire à Eclipse d'ajouter le flag : -d32, à la commande java mais impossible de trouver ça dans les milliards de paramètres, même avec le filtre.
Une idée ?
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

27 sept. 2009, 19:14

Un truc comme : Window > Préférences > Java > JVM Installed > Editer
et là tu passes tes paramètres

ViPHP
ViPHP | 4674 Messages

27 sept. 2009, 19:29

Je n'ai pas JVM Installed, mais j'ai Installed JREs. Donc j'ai choisi JVM 1.6.0 et j'ai édité. Là j'ai un champ : Default VM Arguments que j'ai rempli à -d32. Toujours la même erreur.

Est-ce possible que SWT ne soit pas compatible avec Snow Leopard (j'en doute mais bon …) ?
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

27 sept. 2009, 19:32

Je n'ai pas JVM Installed, mais j'ai Installed JREs. Donc j'ai choisi JVM 1.6.0 et j'ai édité. Là j'ai un champ : Default VM Arguments que j'ai rempli à -d32. Toujours la même erreur.
c'est à ça que je pensais.
Est-ce possible que SWT ne soit pas compatible avec Snow Leopard (j'en doute mais bon …) ?
Et si tu prenais la version 64 bits ?
:arrow: http://www.eclipse.org/downloads/downlo ... _64.tar.gz

ViPHP
ViPHP | 4674 Messages

27 sept. 2009, 19:41

Je l'ai déjà. J'ai testé avec les deux. Et ça ne marche pas.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

27 sept. 2009, 23:14

Et c'est quoi le problème exactement ? T'as un log d'erreur ?

T'as essayé de passer par les préférences Java directement ?

Je suis étonné que la version 64bits ne fonctionne pas

ViPHP
ViPHP | 4674 Messages

28 sept. 2009, 11:44

J'ai deux situtations.

La première, je fais tout à la main, depuis Vim (comme toujours) :

Code : Tout sélectionner

$ javac -cp Swt.jar Bootstrap.java $ Pas de problème<Ctrl+C> $ java Bootstrap Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/widgets/Composite Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.widgets.Composite at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:319) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:330) at java.lang.ClassLoader.loadClass(ClassLoader.java:254) at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:399)
Certes, c'est vexant. Mon code est tout bête en plus, c'est juste pour tester :

Code : Tout sélectionner

import org.eclipse.swt.*; import org.eclipse.swt.widgets.*; public class Bootstrap { public static void main ( String[] args ) { Display display = new Display(); Shell shell = new Shell(display); Label label = new Label(shell, SWT.NONE); label.setText("Hello world!"); shell.pack(); label.pack(); shell.open(); while(!shell.isDisposed()) if(!display.readAndDispatch()) display.sleep(); display.dispose(); label.dispose(); } }
J'ai essayé avec SWT en stable et bêta, le résultat est le même.
Pour information :

Code : Tout sélectionner

$ java -version java version "1.6.0_15" Java(TM) SE Runtime Environment (build 1.6.0_15-b03-219) Java HotSpot(TM) 64-Bit Server VM (build 14.1-b02-90, mixed mode)
Je cherche un peu sur Internet, plusieurs personnes ont ce problème bizarre … mais tous l'ont résolu en utilisant Eclipse. Bien, bah c'est parti, c'est la seconde solution.

Depuis Eclipse, voici le problème que j'ai :

Code : Tout sélectionner

Exception in thread "main" java.lang.UnsatisfiedLinkError: Cannot load 32-bit SWT libraries on 64-bit JVM at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source) at org.eclipse.swt.internal.Library.loadLibrary(Unknown Source) at org.eclipse.swt.internal.C.<clinit>(Unknown Source) at org.eclipse.swt.internal.cocoa.NSThread.isMainThread(Unknown Source) at org.eclipse.swt.graphics.Device.<init>(Unknown Source) at org.eclipse.swt.widgets.Display.<init>(Unknown Source) at org.eclipse.swt.widgets.Display.<init>(Unknown Source) at Bootstrap.main(Bootstrap.java:8)
Mon avis : Eclipse a effectivement résolu le problème que j'avais en ligne de commande (mais comment ?), mais il tombe sur un autre problème. J'ai essayé de faire la manipulation que tu m'as donné avant afin d'ajouter le flag -d32 pour lancer Java en 32bits, mais ça n'y change rien.

Tu parles des préférences de Java, je ne comprends pas.

Merci :-).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

ViPHP
ViPHP | 4039 Messages

28 sept. 2009, 12:23

Un jour, un développeur avait un problème.
Il s'est dit "tiens, je vais utiliser Java!"
Maintenant, il en avait deux.

:mrgreen:
Mais qu'importe. (je suis ici - dernier petit projet)
Berze going social.

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

28 sept. 2009, 13:09

Tu parles des préférences de Java, je ne comprends pas.
Beuh je comprends pas trop ce qui t'arrive.
Dans Applications > Utilitaires tu dois avoir accès aux préférences Java, là où tu peux gérer l'ordre des JVM tout ça, peut-être qu'en tripatouillant là dedans...

Tu as essayé avec le pack Eclipse Cocoa 64 bits téléchargé et avec un nouveau workspace neuf ou c'est un ancien ?

ViPHP
ViPHP | 4674 Messages

28 sept. 2009, 13:47

Yeahhhhhhhhhhhh 8-) !

Alors, la solution est la suivante : Applications > Utilitaires > Préférences Java. On passe la JVM 32bits avant la JVM 64bits (ordre de préférence).

Ensuite, dans Eclipse : Préférences > Java > Installed JREs, on coche JVM 1.6.0 (MacOS X Default) et on édite. On ajoute -d32 dans le champ Default VM Arguments. On pourrait penser que ça ne sert à rien car on a choisi la VM en 32bits me direz-vous, mais non, c'est obligatoire (Eclipse doit le considérer quand même en 64bits car Eclipse est en version 64bits).
On finish, on ok.

Ensuite, la découverte du jour a été qu'on a les préférences de Eclipse, mais aussi que chaque projet a ses propres préférences ! Ça c'est cool, sauf qu'elles ne tiennent pas compte des préférences par défaut d'Eclipse.

Donc on édite les préférences du projet : clic droit sur le projet > Properties > Java Build Path > Libraries, on sélectionne JRE System Library [JVM 1.6.0 (MacOS X Default)] puis on edit. Et là, on n'utilisera pas Execution environment mais Alternate JRE et on choisi JVM 1.6.0 (MacOS X Default) (ou Workspace default JRE (JVM 1.6.0 (MacOS X Default)) mais on lierait ça au workspace donc on va éviter).

Tada :-).

Merci Ouckileou. J'espérais ton aide pour ne rien te cacher … Tu étais la seule personne qui pouvait m'aider dans ma tête sur ce coup :-P.

Comprenons-nous bien, je n'ai rien contre Eclipse (à part un troll périodique) mais son système de préférences est un peu galère … Notons qu'une fois les notions de workspaces, de perspectives et de preferences comprises et bien en main, ça peut être sympa (mais je ne bosse pas aussi vite qu'avec Vim :-)).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Modérateur PHPfrance
Modérateur PHPfrance | 7636 Messages

28 sept. 2009, 14:31

Modération :
Si ta question est résolue, pense à l'indiquer pour que les futures personnes qui voudront consulter ce sujet sachent qu'il contient une solution.
Tu peux réaliser cette opération toi-même en cliquant sur le bouton Image en haut à droite de la réponse qui te semble la plus pertinente.

/!\ Avant de poster se documenter et rechercher.
Qui ne sait pas rendre un service n'a pas le droit d'en demander.
MaBrute

ViPHP
ViPHP | 4674 Messages

28 sept. 2009, 14:51

Ah oui, oops :-P.
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).

Modérateur PHPfrance
Modérateur PHPfrance | 6373 Messages

28 sept. 2009, 16:14

Comprenons-nous bien, je n'ai rien contre Eclipse (à part un troll périodique) mais son système de préférences est un peu galère … Notons qu'une fois les notions de workspaces, de perspectives et de preferences comprises et bien en main, ça peut être sympa (mais je ne bosse pas aussi vite qu'avec Vim :-)).
Oh ben les perspectives c'est pas compliqué :)

Pour ce qui est des préférences, oui, il y en a beaucoup. Et il faut parfois penser à regarder dans le projet. Mais ce n'est pas le truc que tu changes tous les jours non plus. Quand tu arrives sur un projet tu as généralement les config de disponibles sur un SVN et tu n'as plus qu'à tout descendre. Mais normalement à la création du projet, tes préférences doivent hériter de celles globales, en te laissant la possibilité de modifier le projet par la suite.

ViPHP
ViPHP | 4674 Messages

28 sept. 2009, 19:15

Ça roule :-).
« Un handicap est le résultat d'une rencontre entre une déficience ou différence et une incapacité de la société à répondre à celle-ci. »

Hoa : http://hoa-project.net (sur @hoaproject).