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

avec Java Discussion :

Java 32bits sous Win7


Sujet :

avec Java

  1. #1
    lvr
    lvr est déconnecté
    Membre extrêmement actif Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    909
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 909
    Points : 1 360
    Points
    1 360
    Par défaut Java 32bits sous Win7
    Bonjour,

    J'ai une application qui utilise une dll compilée en 32bits. Sous XP, ça fonctionne nickel. Mais sous Win7 : "bardaf, c'est l'embardée" (les belges comprendrons).

    Je reçois le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    java.lang.UnsatisfiedLinkError: D:\work\BDPreviewer\bdpreviewer\target\classes\jshortcut.dll: Can't load IA 32-bit .dll on a AMD 64-bit platform
    J'ai essayé 2 pistes, mais je bloque sur les deux:
    1) recompiler la dll en 64bits, le code étant disponible : : pour le moment, c'est une voie sans issue,

    2) forcer l'exécution de mon programme en 32 bits via l'option "-d32".
    Je fais face à 2 problèmes:

    (*): "java -d32 -jar myappl.jar" retourne
    Error: This Java instance does not support a 32-bit JVM.
    Please install the desired version.

    Pourtant j'ai installé la jdk 64bits et le jre 32bits. Je vois pas comment lui dire que la version 32bits est installée.

    (*): comment dire dès le build du .jar qu'il devra être exécuté en 32bits ? (j'utilise Maven)

    Rem:
    Mon workaround sera dans 1er temps de piloter le démarrage de mon application via un fichier .bat qui utilisera le java.exe 32bits. Mais ce n'est pas très propre.

  2. #2
    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
    Tuuut tuuuut tuuuut tuuuut tuuuut tuuuut tuuuut


    Citation Envoyé par lvr Voir le message
    (*): "java -d32 -jar myappl.jar" retourne
    Error: This Java instance does not support a 32-bit JVM.
    Please install the desired version.

    Pourtant j'ai installé la jdk 64bits et le jre 32bits. Je vois pas comment lui dire que la version 32bits est installée.
    Tout simplement en lui donnant le chemin vers la bon jvm:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c:\program files(x86)\java\jre\bin\java -jar myappl.jar
    a adapter dans ton cas. Le -d32 est inutile. Et effectivement, une dll 32 bits ne peux être chargée que part une jvm compilée en 32 bits.

  3. #3
    lvr
    lvr est déconnecté
    Membre extrêmement actif Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    909
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 909
    Points : 1 360
    Points
    1 360
    Par défaut
    Citation Envoyé par tchize_ Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    c:\program files(x86)\java\jre\bin\java -jar myappl.jar
    C'est ce que je fais pour le moment, mais je considérais cela comme temporaire
    Parce qu'en termes de déploiement, je ne peux pas juste fournir un mon .jar et la dll jni, je vais devoir maintenant créer une procédure d'installation qui va chercher sur le PC s'il y a un jre 32bits, puis créer un .bat qui utilise ce jre pour lancer mon .jar.

    Non seulement, c'est du boulot en plus, mais c'est certainement moins propre car en cas d'upgrade de la jre sur le poste client, mon application ne bénéficiera pas des améliorations de la nouvelle jre, voire ne fonctionnera plus si la jre que j'ai hardcodé dans le .bat est désinstallée.

    A quoi sert ce "-d32" ?

  4. #4
    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 lvr Voir le message
    C'est ce que je fais pour le moment, mais je considérais cela comme temporaire
    Parce qu'en termes de déploiement, je ne peux pas juste fournir un mon .jar et la dll jni, je vais devoir maintenant créer une procédure d'installation qui va chercher sur le PC s'il y a un jre 32bits, puis créer un .bat qui utilise ce jre pour lancer mon .jar.
    Normalement, en terme de déploiement, tu devrais disposer d'un dll 32 et d'une dll 64 bits, et charger la bonne en fonction de l'architecture jvm. Maintenant, je comprends que ce n'est pas toujours possible.

    Citation Envoyé par lvr Voir le message
    Non seulement, c'est du boulot en plus
    Ouais et non, t'as "juste" un .bat à rajouter dans ton zip, avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    %ProgramFiles(x86)%\java\jre7\bin\java tonjar.jar
    Citation Envoyé par lvr Voir le message
    , mais c'est certainement moins propre car en cas d'upgrade de la jre sur le poste client, mon application ne bénéficiera pas des améliorations de la nouvelle jre, voire ne fonctionnera plus si la jre que j'ai hardcodé dans le .bat est désinstallée.
    Le répertoire jre7 contient toujours la dernière version de java 7, c'est déjà ça. Après, rien ne t'empêche de faire un .bat plus complexe qui cherche la version de java.
    De l'aide ici

    http://www.rgagnon.com/javadetails/java-0642.html

    Citation Envoyé par lvr Voir le message
    A quoi sert ce "-d32" ?
    A préciser l'architecture que tu veux. Ca date de l'époque de SOLARIS et est honoré avec plus ou moins de succès sous windows / linux. Sous solaris, le 64 et le 32 bit sont dans le même binaire. Sous windows et linux, ce sont des installations séparées. Du coup, sur ces dernier, ça se contente de dire "c'est pas moi le 32 bits, désolé"

    http://www.oracle.com/technetwork/ja...aq-138619.html

  5. #5
    lvr
    lvr est déconnecté
    Membre extrêmement actif Avatar de lvr
    Profil pro
    Responsable de projet fonctionnel
    Inscrit en
    Avril 2006
    Messages
    909
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Responsable de projet fonctionnel
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Avril 2006
    Messages : 909
    Points : 1 360
    Points
    1 360
    Par défaut
    Ca me semble tout à fait viable comme solution

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Utilisation java class sous oracle
    Par Invité dans le forum JDBC
    Réponses: 1
    Dernier message: 09/10/2007, 12h11
  2. [fonction java] opendialog sous IE7
    Par mika0102 dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 25/03/2007, 15h32
  3. java + sqlite sous Windows
    Par JuTs dans le forum Général Java
    Réponses: 6
    Dernier message: 03/08/2006, 15h39
  4. [Date]Date sous Java != celle sous Access
    Par Cyborg289 dans le forum JDBC
    Réponses: 4
    Dernier message: 27/07/2005, 23h11

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