PDA

View Full Version : [JAVA] Verificare se il sistema operativo è a 32 o 64 bit


VegetaSSJ5
23-06-2010, 20:01
Salve a tutti!
Ho girato in lungo e in largo su internet ma non sono riuscito a capire come ottenere in java la versione del sistema operativo su cui gira la macchina virtuale, se a 32 o 64 bit.
Io ho un sistema a 64 bit ma System.getProperty(architectureOS) mi restituisce un semplice "x86", per cui non credo che la proprietà in questione sia questa...

Mi sapete dare una mano?
Grazie!

lele85
23-06-2010, 20:23
http://forums.java.net/jive/message.jspa?messageID=274406
:D

VegetaSSJ5
23-06-2010, 20:33
http://forums.java.net/jive/message.jspa?messageID=274406
:D
come puoi leggere in quel post, non viene determinata la perorietà 32 o 64 bit del sistema operativo ma della macchina virtuale, infatti anche un utente del forum linkato dice che nonostante abbia un sistema operativo a 64 bit, gli viene restituito x86 perchè la JVM è a 32 bit...

lele85
23-06-2010, 20:44
Urca scusa... ti serve una soluzione multi piattaforma (immagino di si visto che stai utilizzando java) o per un sistema operativo specifico?

Comunque ho trovato questa libreria:

http://www.hyperic.com/products/sigar

Potrebbe esserti utile. È open quindi puoi andarti a vedere come raccoglie le informazioni hardware sui vari OS.

VegetaSSJ5
23-06-2010, 23:05
Urca scusa... ti serve una soluzione multi piattaforma (immagino di si visto che stai utilizzando java) o per un sistema operativo specifico?

Comunque ho trovato questa libreria:

http://www.hyperic.com/products/sigar

Potrebbe esserti utile. È open quindi puoi andarti a vedere come raccoglie le informazioni hardware sui vari OS.
in realtà è solo per windows...
ho scaricato i sorgenti di sigar ma sono in c, pensavo fossero in java....

cmq spiego brevemente a cosa serve. praticamente il mio programma java fa partire un altro programma. quest'altro programma c'è sia in versione 32 bit che in versione 64. lanciando la versione 32 bit su windows va ugualmente bene, ma in caso fosse possibile vorrei lanciare la 64... per questo volevo cercare un modo in java per vedere se il sistema operativo è a 64 bit (e in questo caso lanncia l'eseguibile per i 64 bit) oppure no...

fero86
24-06-2010, 00:13
io al posto tuo preferirei lavorare in ambiente nativo per questo problema: creerei uno starter a 32 bit che a sua volta lancerebbe la versione a 32 bit o quella a 64, a seconda del sistema operativo, e da Java lancerei lo starter.

su Windows puoi rilevare la bitness del sistema operativo con questa API:
http://msdn.microsoft.com/en-us/library/ms724340(v=VS.85).aspx

su Linux non lo so.