Ah, cioè... tu hai copiato il JRE dentro al CD?
Beh.. è già tanto che ti venga avviato.

Il JRE, per poter funzionare correttamente, deve essere installato sulla macchina perchè ha bisogno di accedere a tutte le informazioni necessarie della macchina (variabili d'ambiente utente, variabili di sistema, risorse presenti, restrizioni utente e di sistema, chiavi di registro, una marea di cose).

Il JRE è esattamente come un programma applicativo: va installato per poter essere usato. E' come pretendere di avviare Office senza prima installarlo, copiando solo gli eseguibili e dimenticandosi che c'è tutta una serie di DLL + chiavi di registro di cui il programma necessita)...

Sfido io che ci mette tanto.. è già tanto che funzioni (e sono certo che non funzionerà mai su una macchina dove il JRE non è installato [parlo del JAR, ovviamente]).

Poi tu dici che hai generato l'EXE... bene: i programmi che generano l'EXE di un'applicazione Java, generalmente creano un wrapper che fa le seguenti cose:

1) Verificano che il JRE sia installato sulla macchina
2) Se non è installato, verificano se ce n'è uno a disposizione per l'installazione
3) Se non c'è nemmeno quello, vanno su Internet (ammesso che vi sia una connessione) e si prendono l'ultima release disponibile, la scaricano e la installano
4) Alla fine, se almeno qualcosa è andato dritto, avviano il JAR.

Capisci che c'è una bella differenza tra avviare un JAR dove sicuramente la JRE c'è ed è installata e una situazione come quella descritta.

Se il tuo intento è quello di distribuire l'applicazione, allora dovresti fare come fanno tutti: un installer che si occupa della parte preliminare (verifica JRE e eventuale installazione) e di copiare il JAR + librerie. Fine.


Ciao.