|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : avril 2007 Messages : 46 ![]() |
Bonjour, ma question est simple :
J'aimerais savoir comment on peut détecter avec Java si on se trouve sur un Windows 32-bit ou 64-bit. Un grand merci d'avance ! |
|
|
00
|
|
|
#2 |
|
Expert Confirmé Sénior
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 655 ![]() |
Salut,
Je suppose que System.getProperty("os.arch") devrait renvoyer x86_64... a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
|
00
|
|
|
#3 |
|
Invité régulier
![]() Inscription : avril 2007 Messages : 46 ![]() |
Ben en fait... j'avais essayé...
Mais chez moi ça renvoie "x86" alors que je suis sur un Windows XP x64 C'est normal? |
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : avril 2007 Messages : 46 ![]() |
C'est peut-être juste sous Linux le x86_64
=> http://lopica.sourceforge.net/os.html |
|
|
00
|
|
|
#5 |
|
Expert Confirmé Sénior
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 655 ![]() |
Que te renvoi la commande suivante :
a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
|
00
|
|
|
#6 | ||
|
Invité régulier
![]() Inscription : avril 2007 Messages : 46 ![]() |
Voilà voilà...
Code :
Alors j'anticipe : Comment connaître l'architecture du windows, indépendamment de la machine virtuelle utilisée? Et alors j'ai aussi une autre question. Supposons que je télécharges une machine virtuelle 64-bit et que je développe sous Eclipse avec cette version. Si je veux exporter mes fichiers.class vers un WinXP 32 bit, est-ce que je saurai lancer les .class avec une machine virtuelle 32 bit ? Excuse moi mais je ne maîtrise pas bien le sujet ;-) Un grand merci pour tout |
||
|
|
00
|
|
|
#7 | ||
|
Expert Confirmé Sénior
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 655 ![]() |
J'en ai bien peur
Je n'en suis pas sûr mais il me semble que java -version est enrichie de la mention "64 Bits" lorsque c'est le cas... Citation:
Je m'explique : sous Windows 64bits les applications 32bits sont lancés dans un sous-système comparable à un environnement 32bits. Les applis 32bits (comme la JVM 32bits) se croient donc en environnement 32bits... Citation:
Quel que soit le compilateur utilisé, une appli Java fonctionnera "de la même manière" avec une JVM 32bits ou une JVM 64 bits. La seule différence viendra que la version 64 bits pourra bénéficier des avantages de son architecture La seule contrainte étant d'avoir une version de la JVM identique ou supérieur au JDK utilisé pour compiler l'appli Par curiosité : pourquoi as-tu besoin de connaitre cela ? a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
||
|
00
|
|
|
#8 |
|
Invité régulier
![]() Inscription : avril 2007 Messages : 46 ![]() |
Merci pour toutes ces explications, ça m'éclaire pas mal.
Ben en fait je réalise un programme Java qui, à certains moments, lance des programmes externes via des getRuntime.exec(****.exe) Ces programmes sont réalisés en c++ et ont été compilés avec MinGW/MSys (sais pas si tu connais...) Bref, tout ça pour dire que : pour que les .exec(***.exe) fonctionnent, il faut qu'une dll "mingwm10.dll" soit présente dans le répertoire WINDOWS/system32 Cependant, j'ai deux versions : mingwm10.dll 64bit et mingwm10.dll 32bit Là, je suis en train de créer un "installer" automatique de mon programme (qui risque d'être lancé sur 32 et 64 bit). Et je voudrais savoir quelle version de mingwm10.dll je dois copier dans system32... Tu vois ? Ce ne serais pas très propre mais normalement, dans les architectures 64bit, il existe un répertoire : C:\WINDOWS\SysWOW64 Je pourrais peut-être me baser sur l'existence de ce répertoire pour savoir si oui ou non je suis sur 64bit... Qu'en penses-tu? |
|
|
00
|
|
|
#9 | |
![]() ![]() Inscription : novembre 2006 Messages : 5 087 ![]() |
Citation:
|
|
|
|
00
|
|
|
#10 | ||
|
Expert Confirmé Sénior
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 655 ![]() |
Citation:
Donc le mieux serait de copier mingwm10.dll 32bit dans system32 dans tous les cas (cela permettrait de ne pas avoir d'erreur si tu lances une appli 32bits sur un 64bits), et de copier mingwm10.dll 64bit si le répertoire "SysWOW64" existe... Bien sûr à condition que les appli utilisent bien ces répertoires selon le mode 32/64bits (ce que j'ignore). A noter que tu pourrais vérifier la variable d'environnement PROCESSOR_ARCHITECTURE via System.getenv(), bien que je pense qu'elle retourne x86 pour une appli 32 bits... Citation:
a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
||
|
00
|
|
|
#11 | ||
|
Invité régulier
![]() Inscription : avril 2007 Messages : 46 ![]() |
Citation:
http://ubuntuforums.org/showthread.php?t=473546 Citation:
Si "WOW64" existe... c'est que c'est un Windows 64 bit. Dans ce cas je mets la version 64bit du dll dans system32 et s'il n'existe pas, je mets la version 32 bit ! ![]() lol |
||
|
|
00
|
|
|
#12 | |
|
Invité régulier
![]() Inscription : avril 2007 Messages : 46 ![]() |
Citation:
|
|
|
|
00
|
|
|
#13 | |
|
Expert Confirmé Sénior
![]() ![]() Développeur Java/Web Inscription : avril 2002 Messages : 12 655 ![]() |
C'est bien tordu tout cela
![]() Citation:
a++
__________________
adiGuba [ tutoriels | blog | twitter ] Rédacteur/Modérateur Java |
|
|
00
|
|
|
#14 | ||
|
Invité régulier
![]() Inscription : avril 2007 Messages : 46 ![]() |
finalement... je me rends compte que c'est impossible de copier un fichier dans le répertoire system32...
Donc je change d'option : je vais mettre des Code :
et je vais juste, à l'installation, choisir la bonne version du dll et la placer dans le même répertoire que le package qui lance les .exec (au lieu du répertoire system32) Merci pour tout ! A bientôt! |
||
|
|
00
|
Copyright © 2000-2013 - www.developpez.com