Newsgroup: it.comp.java
Titolo: JIT?

Salve a tutti,
sto imparando Java e fino ad ora ho utilizzato il JDK1.1.7.
Ora ho scaricato il JDK1.2, incuriosito anche dal fatto che comprende un
compilatore per ottenere codice nativo x86. Saro' tanto ignorante, ma...
non l'ho trovato! Come devo fare per ottenere un EXE dal mio file java o
class?
Grazie 1000
Ricky

...


il tutto a discapito della portabilità!!!
L'unico "discapito" che vedo e` che, normalmente, un eseguibile
nativo non puo` supportare il caricamento a runtime di classi
(in teoria potrebbe anche farlo, collaborando con la JVM in modo
opportuno, ma in pratica, che io sappia, cio` non accade); per
il resto, il suo comportamento non dovrebbe cambiare, eccetto
eventualmente (si spera!-) per una maggiore velocita`.
Ad esempio: GIB (un eccellente programma che gioca a bridge,
vincitore del piu` recente campionato mondiale fra simili programmi)
e` scritto in Java (con un nucleo di funzioni in C JNI per certi
calcoli), ed e` distribuito, come ormai normale, su di un CDROM,
del quale occupa solo 20 megabyte circa; se gli autori volessero
sfruttare un po' di quei 580 megabyte di CDROM rimasti vuoti,
potrebbero certamente metterci l'equivalente eseguibile nativo
(magari in 2 versioni corrispondenti ai 2 ambienti che GIB
supporta, Win32 e Linux), senza, con questo, togliere nulla a
nessuno, e magari con un piccolo guadagno di velocita` (che
non guasterebbe: GIB e` usabile, ma un poco lento).
Nota collaterale: e` interessante notare che, mentre nulla
naturalmente impedisce di provare a far girare GIB sulle
macchine piu` strane, le piattaforme che l'autore ha scelto
di *supportare* sono due sole -- il Linux che usa lui per lo
sviluppo, e il Win32 che usano la maggior parte dei suoi
potenziali clienti; cio` significa che, se uno prova GIB su,
che so, OS/2, o Solaris, ecc, se funziona, bene, se non
funziona, peccato, ma l'autore non fara` nulla in merito;
inoltre, le procedure d'istallazione riconoscono e gestiscono
solo i due ambienti supportati, per usare GIB altrove sarebbe
invece necessario piazzare i vari files ecc "a mano".  Penso
che questa politica commerciale sia perfettamente sensata
(l'autore non si interessa di testare, debuggare, sviluppare
procedure d'istallazione, ecc ecc, su piattaforme strane,
magari costose, e commercialmente marginali per il suo
target -- evitando questi investimenti a basso o nessuno
ritorno, ha piu` tempo da investire nel migliorare le capacita`
bridgistiche del programma, le sue funzionalita` ausiliarie,
l'interfaccia utente, eccetera), ma bisogna ammettere che
essa relega l'idea del "write once, run anywhere" ad un ruolo,
almeno temporaneamente, un poco marginale (certo, se un
domani la varieta` di piattaforme commercialmente piu`
importanti dovesse nuovamente esplodere, la portabilita`
del programma giochera` comunque un ruolo di "rete di
sicurezza" per chi lo produce).
Alex

eventualmente (si spera!-) per una maggiore velocita`.
Non dovrebbero esserci modifiche anche per i Security managers?
--
Bye,
  Dario
ICQ: 
http://wwp.mirabilis.com/11871099
Remove anti-spam from e-mail address

Non dovrebbero esserci modifiche anche per i Security managers?
Non credo che la compilazione a codice nativo valga per le applet.
Il ruolo dei security manager in servlet e applicazioni mi e` oscuro.
Alex

Il ruolo dei security manager in servlet e applicazioni mi e` oscuro.
Però ci sono: in quel caso penso che il comportamento sarebbe tutto da
studiare.



I server per agenti mobili (come quelli progettati da IBM o quelli
ipotizzati da Lorenzo Bettini su MokaByte) necessitano sicuramente di
SecurityManager ma il loro problema principale sta nel fatto che
comunque non potrebbero essere compilati in codice nativo visto che,
come già accennavi qualche messaggio fa, necessitano di caricare
classi a runtime e la cosa non è ancora stata implementata da nessun
compilatore nativo (almeno che io sappia... poi spero sempre in HPC di
IBM il quale mi ispira maggiore fiducia...).
Matteo!!!

 Il ruolo dei security manager in servlet e applicazioni mi e` oscuro.
Mah, credo che al momento siano semplicemente degli oggetti nulli.
Saluti,
	Cris