Oppure

Loading
11/01/07 18:01
Fmasso91
Salve,
Vorrei sapere come posso distribuire le mie applicazioni java ai miei amici, c'è un modo per trasformare i .class in .exe o si utilizza un altro sistema per distribuire le applicazioni??

grazie in anticipo!
aaa
11/01/07 19:52
Black Shadow
Ci sono diverse opzioni:

1) La più semplice, usare un file .bat con i comandi per far avviare l'applicazioni (di solito: java nome_applicazione).

2) Usare un programma per la conversione dei .class in un .exe, ad esempio exe4j, che puoi trovare qui: programmazione.it/…

In alternativa potresti ad esempio fare un .bat che fa avviare l'applicazione e poi trasformarlo in .exe con un programma come "Bat to Exe Converter" scaricabile da: freewarefiles.com/…

;)
aaa
12/01/07 13:59
Fmasso91
Grazie per avermi risposto,
leggendo la tua risposta mi è sorto un dubbio, ma il file .exe creato con uno dei programmi che mi hai consigliato pu essere eseguito anche su un computer dove nn è installato il jdk e non connesso ad internet?
aaa
13/01/07 13:46
Black Shadow
Per il fatto della connessione ad Internet, i programmi in Java non hanno bisogno di connessione.
Cioè, se questa è richiesta dal programma si (ad esempio usando i socket o l'RMI), altrimenti per visualizzare ad esempio un'applet non c'è bisogno di connettersi.

Per il fatto della JDK se usi lo stratagemma del .bat questa è necessaria, dato che il .bat non fa altro che avvviare il programma java dal prompt di comando. Se usi exe4j non ne sono sicuro, dato che non l'ho mai usato personalmente, ma penso che sia necessaria cmq la JDK.
aaa
13/01/07 14:22
Fmasso91
ok, grazie 1000
aaa
13/01/07 18:25
netarrow
la jvm è SEMPRE necessaria, programmi come exe4j non fanno altro che fare un wapper di un jar, infatti moltissimi software java sono distribuiti in formato jar(Java ARchive), che associati al programma javaw.exe vengono aperto come un eseguibile col doppio click, ma questa procedura ha delle limitazioni, ad esempio programmi a console non sono mai riuscito a farle andare.

Usando exe4j c'è una parte di codice binario che controlla se esiste la jvm, se c'è esegue se non c'è da errore, un errore chiaro "manca la jvm la trovi qui bllablabla" ovviamente in fase di creazione puoi decidere tu che errore dare (se usi il jar semplicemente non sarà associato a javaw.exe e non sarà eseguibile, inoltre la maggior parte degli utenti non sa che può eseguire un .jar e cercherebbe l'exe).

Altri software inseriscono la jvm direttamente nel tuo programma, il che li rende un piombo il software ma almeno sai che andrà(io sinceramente per evitare di arrivare a sto punto cambio linguaggio fin da subido o mi fido del fatto che l'errore che lancia exe4j quando non trova la jvm sia chiaro)

Sta di fatto che tutti questi software NON FANNO DIVENTARE NATIVO JAVA, sono solo stratagemmi per farlo partire, ho sentito di un software che compila nativamente una parte della core standard ma è molto molto limitato(e costa).

N.B
Attenzione per il file bat, se la macchina su cui gira il software non è di uno che anche programma in java è molto probabile che i comandi java ecc... non siano nelle veriabili environment il che creerebbe un problema in più.
I software come exe4j fanno controlli nel registro di sistema che viene intaccato in fase di installazione.
Ultima modifica effettuata da netarrow 13/01/07 18:28
aaa
16/01/07 15:23
Fmasso91
Grazie per tutte le cose che hai scritto, grazie a te ora ho una panoramica completa sulla distribuzione di programmi java, ma leggendo le risposte mi sono chiesto come mai la sun non abbia messo a disposizione un compilatore per creare dei programmi utilizzabbili su tutti i pc senza dover stare attento a tutti questi stratagemmi, secondo me questo gioverebbe al linguaggio, che si diffonderebbe ancora di +.
aaa
16/01/07 15:53
Black Shadow
Tieni conto che questa è la cosa principale che distingue il Java dagli altri linguaggi.
aaa