.jar qui ne se lance que sur MON pc

Fermé
Dgiggy - 6 août 2014 à 21:20
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 - 6 août 2014 à 22:46
Bonjour,

Voila, malgré de nombreuses recherches sur internet j'ai trouvé des personnes traitant le même sujet que moi. Mais malheureusement aucun forum ne m'a trouvé de solution à mon problème.
J'ai créer une application java avec eclipse sur windows 7, je me suis aidé de WindowBuilder (si il est utile de le préciser) puis une fois ce programme terminé je l'ai exporté sur mon ordinateur, il se lance sans soucis.
Puis j'ai essayé de lancer avec un autre ordinateur sur windows 7 lui aussi, puis sous linux ubuntu puis sur mac osx. Et la ça ne fonctionne pas. Le jar se lance uniquement sur le pc avec lequel je l'ai crée.
J'ai pu voir certains forums me conseillant de changer le java compiler compliance level, ce que j'ai fait mais encore une fois cela ne fonctionne pas. Les deux PC sur windows possèdent la dernière version de java : 1.8.0.11 mais pourtant le jar ne se lance pas de la même manière.

Merci d'avance pour vos réponses et désolé pour le pavé :p

A voir également:

5 réponses

KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
6 août 2014 à 21:32
Bonsoir,

Si le jar ne s'exécute pas c'est qu'il y a une erreur, et pour la voir s'afficher il faut démarrer le jar avec une invite de commande :

java -jar MonJar.jar
0
Apparemment, le problème sur l'autre machine windows 7 c'est que comme celle-ci est en 32bit alors que celle qui a permit de créer le jar est en 64bit. Les Library 64bit n'ont pas été chargées. Donc comment rendre ce programme compatible avec les machines 32bit ?
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
6 août 2014 à 21:54
Il n'y a pas de notion de 32 ou 64 bits au sein des programmes Java.
Tu peux compiler en 64 bits et exécuter en 32 bits et inversement, le problème est ailleurs.

Tu as un message d'erreur sur la console, c'est quoi ?
0
Et bien justement le message est en Anglais mais dit : "Cannot load 64bit SWT libraries on 32bit JVM". SWT étant un composant essentielle de WindowBuilder, je commence à me demander si c'est bien WindowBuilder le soucis.
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
6 août 2014 à 22:08
Dans ce cas c'est SWT le problème. Si tu as des versions 32 et 64 bits de SWT, il serait logique d'avoir des versions 32 et 64 bits de ton programme, chacune avec ses dépendances spécifiques.

Tu peux aussi imposer que tout le monde utilise le SWT 32, mais dans ce cas il faut rajouter une option aux JVM 64 bits pour qu'elles exécutent le programme en 32 (l'inverse n'est pas possible).
0
Le seul soucis c'est que je ne sais pas du tout comment passer swt en 32bit car je l'ai installé en copier le lien sur le site d'eclipse et en le collant sur help --> install new software
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
6 août 2014 à 22:26
Je ne connais pas du tout SWT, mais je pense que si tu recommences la compilation de ton projet avec un Eclipse 32 bits sur ton Windows 32 bits, cela devrait compiler la version 32 bits.
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Voila j'ai recompilé mon programme avec eclipse sous 32bit et bien maintenant c'est l'inverse le programme me dit (sur la machine 64bit) : "Cannot load 32bit SWT livraries on 64bit JVM". J'avoue que je suis perdu !
0
KX Messages postés 16753 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 25 novembre 2024 3 019
6 août 2014 à 22:46
Dans ce sens là c'est moins gênant, tu peux rajouter le paramètre -d32 qui forcera la JVM à traiter le programme en 32 bits.

https://www.oracle.com/java/technologies/hotspotfaq.html#64bit_layering

Sinon tu gardes les deux versions : 32 et 64 bits et tu utilises l'une ou l'autre selon ta machine.
0