Quali sono i principali colli di bottiglia da sapere sulla portabilità di Java?

7

Java è noto per essere portatile; "compila una volta, esegui ovunque" . So che questo è vero spesso perché ho spesso schierato jar o war senza problemi multipiattaforma. Tuttavia, mi chiedo se questo sia sempre vero.

Ad esempio, le applicazioni Swing hanno un aspetto diverso tra piattaforme OS diverse. Inoltre, JDK-1.7 è ancora una versione di anteprima per Mac OS X.

Quindi, quali sono i problemi comuni che dimostrano che le applicazioni Java non sono completamente cross-platform?

    
posta alain.janinm 06.03.2012 - 16:43
fonte

1 risposta

8

L'oscillazione dipende dalla piattaforma in una certa misura. Oltre ai temi del widget che sono diversi, come hai notato, abbiamo avuto applicazioni basate su Swing in cui il layout è diverso da piattaforma a piattaforma. C'era anche un altro gruppo in cui lavoravo che aveva alcuni widget che non si vedevano nemmeno su certe piattaforme.

Non sono sicuro di quanto grande sia il problema, perché non sono sicuro di quanto Swing sia più usato. Il software SWT di Eclipse sembra essere molto più indipendente dalla piattaforma, quindi sembra che la GUI Java + non implichi necessariamente la non portabilità.

Inoltre, qualsiasi codice Java che utilizza il sistema operativo o fa ipotesi sulla piattaforma sottostante sarà naturalmente meno portabile, per ragioni che includono (ma non solo):

  • caso (in) sensibilità del filesystem
  • caratteri di nuova riga
  • thread / processi

(Molti di questi possono essere facilmente gestiti dalle API Java - System.getProperty("line.separator"); ) .

Come contropartita del detto che hai citato, alcuni dei programmatori più esperti del mio gruppo dicono che Java è "scrivi una volta, prova ovunque".

    
risposta data 06.03.2012 - 17:02
fonte

Leggi altre domande sui tag