PDA

View Full Version : [JAVA] Identificazione del OS


3nigma666
16-05-2005, 12:33
ciao,
qualcuno sa qual'è l'equivalente del:


#if defined __linux__

e

#if defined WIN32


in java???

grazie mille

kingv
16-05-2005, 13:04
non esiste un equivalente in fase di compilazione, se hai bisogno di conoscere il sistema operativo in fase di esecuzione puoi farlo con:

String osname = System.getProperty("os.name");

se vuoi per forza discriminare mentre compili (ma ha senso in java?) fallo attraverso un tool di build come ant.

sirus
16-05-2005, 13:18
ciao,
qualcuno sa qual'è l'equivalente del:


#if defined __linux__

e

#if defined WIN32


in java???

grazie mille

e che ti serve con java :mbe: uno dei vantaggi di java è quello di essere so indipendente e tu, vuoi fare una compilazione condizionale :confused:

3nigma666
16-05-2005, 18:26
mi serve in quanto in universita le macchine implementano java 1.4 mentre invece a casa ho java 5.0 ,fatto sta ke nn avendo permessi da root non posso upgradare java e con java 1.4 nella gestione delle interfaccie grafiche nn si puo chiamare un pannello in questa maniera : add(panel) ma bensi con il comando panelContent().add() . Java 5.0 gestisce entrambe le vs.ma per motivi ke nn sto qui a spiegare non posso semplicemente sostituire add() con panelContent().add() e quindi mi serve compilare in maniera distinta!

sirus
16-05-2005, 18:57
mi serve in quanto in universita le macchine implementano java 1.4 mentre invece a casa ho java 5.0 ,fatto sta ke nn avendo permessi da root non posso upgradare java e con java 1.4 nella gestione delle interfaccie grafiche nn si puo chiamare un pannello in questa maniera : add(panel) ma bensi con il comando panelContent().add() . Java 5.0 gestisce entrambe le vs.ma per motivi ke nn sto qui a spiegare non posso semplicemente sostituire add() con panelContent().add() e quindi mi serve compilare in maniera distinta!
beh allora il problema principale non è quello di scoprire il so ma quello di scoprire la versione di virtual machine disponibile :O purtroppo non ti so aiutare, in java so fare ben poco, con il c/c++ sono più a mio agio :sofico:

3nigma666
16-05-2005, 21:59
si anke io avevo pensato alla versione della virtual machine,solo che lo ritenevo molto piu complicato... uhmm qualke idea???

kingv
16-05-2005, 22:30
uhmm qualke idea???

Come di suggerivo nel post sopra fai un controllo a runtime e usi una forma o l'altra a seconda della versione disponibile (puoi ottenere la versione con cui viene eseguito il tuo codice con le properties di sistema "java.version" o "java.vm.version" ).
Così non ti tocca ricompilare a seconda del tipo di macchina su cui stai eseguendo il tuo codice (che in java è un approccio inutile)

3nigma666
17-05-2005, 12:19
ok grazie mille

sirus
17-05-2005, 12:20
Come di suggerivo nel post sopra fai un controllo a runtime e usi una forma o l'altra a seconda della versione disponibile (puoi ottenere la versione con cui viene eseguito il tuo codice con le properties di sistema "java.version" o "java.vm.version" ).
Così non ti tocca ricompilare a seconda del tipo di macchina su cui stai eseguendo il tuo codice (che in java è un approccio inutile)
queste me le segno :mano:

VICIUS
17-05-2005, 12:58
e che ti serve con java :mbe: uno dei vantaggi di java è quello di essere so indipendente e tu, vuoi fare una compilazione condizionale :confused:
Le librerie java straggono un po ma non trattano di certo tutto. Capita spesso di dover scrivere dei pezzi di codice dipendenti dalla piattaforma anche in java.

ciao ;)

sirus
17-05-2005, 13:27
Le librerie java straggono un po ma non trattano di certo tutto. Capita spesso di dover scrivere dei pezzi di codice dipendenti dalla piattaforma anche in java.

ciao ;)
ah...sono sempre più convinto che il C++ mi piace da matti :sofico: