Java davvero multipiattaforma
Il linguaggio Java nasce con l’espressa intenzione di essere multipiattaforma: scrivi il codice una volta e stai sicuro che girerà su Windows, Linux, Mac e DrDos1 senza grandi smanettamenti.
Lavorando con Java 5 ho constatato che è davvero così ma che c’erano ancora due problemi. Problemi che sono stati risolti con Java 6:
- apertura di file con il programma predefinito del sistema (ad esempio aprire i doc con Word se si è su Windows o con OpenWriter se si è su Linux).Con Java 5: C’era da capire in che sistema operativo eri e inventarsi modi astrusi per aprire qualche programma di sistema che fa il lavoro al posto nostro.Con Java 6: C’è la magnifica classe Desktop e si risolve tutto con una riga di codice:
Desktop.getDesktop().browse(new URI(fileName));
La classe Desktop ha anche altre funzioni interessati per modificare i file, mandare mail e stampare. - Rilevamento del MAC address della macchina.Con Java 5: C’era da capire in che sistema operativo eri, chiamare quindi ipconfig o ifconfig o chissà cos’altro, dedurre in qualche modo il MAC address dalla sua risposta e smadonnare quando non si capiva niente.Con Java 6: Bastano due poche righe di codice:
InetAddress localhost = InetAddress.getLocalHost();
byte[] macByte = NetworkInterface.getByInetAddress(localhost).getHardwareAddress();
String mac = Integer.toHexString(0xff & macByte[0]) + "-"
+ Integer.toHexString(0xff & macByte[1]) + "-"
+ Integer.toHexString(0xff & macByte[2]) + "-"
+ Integer.toHexString(0xff & macByte[3]) + "-"
+ Integer.toHexString(0xff & macByte[4]) + "-"
+ Integer.toHexString(0xff & macByte[5]);La parte più astrusa è solo per la conversione da esadecimale a stringa (lo so, si potrebbe scrivere un codice più pulito ma è solo per rendere l’idea).
Morale della favola: usa Java 6 per la tua salute
- Vabbé, non esageriamo…
[↩]












08 giugno 2009 alle 11:55
>Morale della favola: usa Java 6 per la tua salute
Non ho idea di cosa tu stia parlando, ma per dimostrarti la mia buona volontà ne parlerò al mio dietologo.