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

Langage Java Discussion :

Déterminer version 32/64 bits du système d'exploitation


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 19
    Points : 13
    Points
    13
    Par défaut Déterminer version 32/64 bits du système d'exploitation
    Bonjour,

    Je poste pour ce problème car je n'arrive pas à trouver de solution. Le problème est pourtant simple : je voudrais juste déterminer si la version du système d'exploitation sur lequel s'exécute mon programme java est 32 ou 64 bits.

    Il y a bien la simple commande batch "echo %processor_architecture%" mais elle ne donne pas le bon résultat à partir du programme java. Il semblerait qu'elle donne plutôt la version de la JVM. La variable d'environnement serait-elle écrasée à l'intérieur du programme java ? Dans ce cas y-aurait-il possibilité d'accéder à la variable originelle ?

    Merci de votre aide.


    Edit : Excusez-moi j'ai finalement trouvé un topic qui concerne ce sujet exact :
    http://www.developpez.net/forums/d65...ows-32-64-bit/
    Donc il semblerait que la seule solution soit de détecter l'existence d'un répertoire censé exister uniquement sur des versions 64 bits, ce qui ne garantie pas l'exactitude du résultat :/

  2. #2
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,


    Que cherches-tu à faire exactement ?

    a++

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Simplement à exécuter un programme externe à mon appli java. Un fichier .exe inclus dans les sources de mon projet. Le problème c'est que j'ai deux versions de ce fichier, une pour le 32 bits et une pour le 64 bits. Il me faut donc déterminer si le système d'exploitation est 32 ou 64 bits, afin d'exécuter le bon fichier.

  4. #4
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Ben System.getProperty("os.arch") devrait être amplement suffisant pour cela.

    Dans le pire des cas si tu utilises une JVM 32bits sur un système 64bits, cela lancera une autre appli 32bits (mais ca marchera).


    a++

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    System.getProperty("os.arch") me donnait justement comme résultat 32 bits donc ça ne marche pas...
    Je précise que mon exe a deux versions, une qui fonctionne uniquement sur versions 32 bits et une qui fonctionne uniquement sur version 64 bits.

  6. #6
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Ben ca te donne cela si tu utilises une JVM 32bits, ce qui signifie que l'application tourne dans un environnement 32bits...

    Quel est le problème à lancer une application 32bits dans ce cas là ???


    a++

    PS : Si tu veux vraiment utiliser du 64bits, commence par prendre une JVM 64bits...

  7. #7
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    J'ai édité mon message du dessus. Ce n'est pas une application uniquement pour moi... je ne vais pas dire aux gens "utilisez une JVM 32 bits", la plupart ne saurait déjà pas ce que ça veut dire.

  8. #8
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Et alors ?

    S'ils utilisent une JVM 64 bits tu lances ton exe 64 bits.
    S'ils utilisent une JVM 32 bits tu lances ton exe 32 bits.

    Je ne vois pas en quoi c'est problématique ?

    a++

  9. #9
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    ça ne dépend pas de la version de la JVM. ça dépend du système d'exploitation.

  10. #10
    Expert éminent sénior
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Et ? En quoi c'est problématique ?

    Tu utilises déjà un sous-système 32bits pour ton appli Java, donc quel est le problème à faire de même pour le process que tu lances ?

    a++

  11. #11
    Membre à l'essai
    Profil pro
    Inscrit en
    Janvier 2009
    Messages
    19
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2009
    Messages : 19
    Points : 13
    Points
    13
    Par défaut
    Ton insistance m'a fait me remettre en question...
    Tu dis "Tu utilises déjà un sous-système 32bits pour ton appli Java", du coup ce que j'en comprends finalement c'est qu'il faudrait utiliser la version pour OS 32 bits du fichier même si l'OS est 64 bits...

    Pour préciser la problématique, le fichier en question est le programme devcon. Je m'en sers pour créer une carte de bouclage via la commande :
    devcon install %WINDIR%\Inf\Netloop.inf *MSLOOP

    Mon OS est windows7 64 bits.
    J'ai deux fichiers : devcon32.exe et devcon64.exe.
    Lorsque j'exécute la commande avec devcon32, l'installation échoue tandis qu'avec devcon64, l'installation réussit, ce qui paraît logique.

    Maintenant en passant par l'exécution à partir d'un programme java, à mon grand étonnement l'installation échoue dans les deux cas et avec les deux JVM suivantes : JRE 1.6.0_23 32 bits et JRE 1.6.0_23 64 bits.
    "devcon32 failed." "devcon64 failed."

    Là je ne comprends vraiment pas :/

    PS : merci de ton aide au fait

Discussions similaires

  1. Déterminer les coordonnées 3D d'un système stéréo
    Par wheelskad dans le forum OpenCV
    Réponses: 25
    Dernier message: 13/05/2012, 21h56
  2. Déterminer version oracle
    Par nissarti dans le forum Installation
    Réponses: 7
    Dernier message: 04/10/2011, 13h12
  3. Réponses: 1
    Dernier message: 01/02/2009, 19h05
  4. Vba - Déterminer version d'Excel
    Par House MD dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 23/01/2008, 18h22

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