Compilazione programmi PersonalJava e preparazione per l'installazione sul cellulare.

Per compilare un programma PersonalJava bisogna effettuare vari passi:
- compilazione vera e propria e creazione del file .jar "eseguibile"
- creazione dei file .app e .aif associati al .jar
- creazione dell'icona dell'applicazione (opzionale)
- avvio dell'applicazione PersonalJava sull'emulatore

Compilazione e creazione .JAR:
1)  Impostare la variabile di ambiente EPOCROOT al valore \Symbian\UIQ_21\ o \Symbian\UIQ_70\ osservando che:

2) Utilizzare questo script DOS, mettendo al posto di MyAppName il nome della propria applicazione, rispettando maiuscole e minuscole:
@echo off
if "%epocroot%" == "" goto noepocroot
set appname=MyAppName
set localclasspath=%epocroot%epoc32\java\lib\classes.zip;%epocroot%erj\classes;%epocroot%erj\ext\qawt.jar;%epocroot%erj\ext\util.jar;%epocroot%epoc32\java\ext\javaphone.jar
cd %epocroot%erj\%appname%\
if not exist %epocroot%erj\%appname%\code\ mkdir %epocroot%erj\%appname%\code
javac -classpath %localclasspath% -d code source\*.java
if errorlevel 1 goto failed
cd code
jar -cf ..\install\%appname%.jar *.class
cd ..
echo Successfully compiled %appname%
goto exit

:failed
echo Failed to compile %appname%
goto exit

:noepocroot
echo The environment variable 'epocroot' has not been set.
echo Ensure that it is set to where you installed the UIQ SDK.
echo E.g. C:\Symbian\UIQ_70\
goto exit

:exit

Si otterrà così un file .JAR contenente gli eseguibili Java. Questo tipo di .JAR non può essere installato direttamente sul cellulare, nè tramite PC ne cliccandoci sopra quando il file è giù sul cellulare stesso: occorrono i corrispettivi vile .AIF e .APP per lanciarlo.

Creazione file .APP e .AIF per l'applicazione
Da DOS lanciare AIFBUILDER (occorre che Java sia correttamente installato sul sistema e l'SDK sia propriamente configurato (vedi  questa pagina)
aifbuilder-tab2
Selezionare JAVA, inserire il nome dell'applicazione, l'UID ricevuto dalla Symbian (oppure uno di prova compreso tra   0x01000000 to 0x0fffffff) , e la linea di comando che lancerà l'applicazione.

Passare alla tab successiva:
aifbuilder-tab2
Scegliere UIQ come "UI variant" (se si hanno piu' SDK installati, compariranno più opzioni)
Scegliere una cartella per i file definitivi (Location to generate files) e per quelli temporanei (Output directory for temporary files)
Se si dispone già del file .mbm contenente le icone dell'applicazione, inserirne il percorso nella prima riga, altrimenti premere CREATE e passare al paragrafo su come creare i file .MBM.

Passare alla tab successiva:
aifbuilder-tab3
Qui si può scegliere se l'applicazione avrà nomi diversi a seconda della lingua installata sul cellulare.

A questo punto, premere il pulsante GENERATE per creare i file .APP e .AIF, più un file .TXT usato dal sistema per avviare l'applicazione Java.
Questi tre file, insieme al file .jar, dovranno essere collocati nella cartella \system\apps\MyAppName del cellulare (manualmente o tramite file .SIS). Facendolo manualmente, l'applicazione non comparirà subito nella lista applicazioni: dovrà essere avviata la prima volta a mano tramite file manager.

Crezione file .MBM:
Lanciare AIFBUILDER e cliccare su CREATE nella seconda schermata (vedi paragrafo precedente); si aprirà questa schermata:
aif icon designer

Qui è possibile disegnare a mano l'icona, oppure caricare un file BMP esterno.

NOTA BENE: QUESTO PROGRAMMA PRESENTA UNA SECONDA SCHERMATA, per disegnare l'icona ad alta risoluzione:
aif icon designer  - 2

NOTA 2:
Se si hanno pià SDK installati, potrebbero non comparire le dimensioni corrette per le icone da creare.

Ogni icona è formata dal disegno vero e proprio e dalla "maschera" (mostrata nel riquadro destro): tutto ciò che nella maschera è bianco, apparirà trasparente sul telefono.

Lanciare un programma PersonalJava sull'emulatore:
è necessario che siano correttamente impostate le variabili di ambiente EPOCROOT , _EPOC_DRIVE_J e EPOC_DRIVE_T : la prima indica dov'è installato l'SDK, la seconda e la terza "attivano" due drive virtuali sull'emulatore (J: e T:), e indicano dove si trovano le classi Java dell'emulatore (in genere in c:\symbian\uiq_21\epoc32\java 
e c:\symbian\uiq_21\erj).
Si possono impostare le variabili definitivamente in Windows, o solo per la sessione DOS corrente usando questo file batch:
:@echo off

rem pjava Launcher
rem Copyright (c) 1999-2003 Symbian Ltd.  All rights reserved.

if "%_epoc_drive_j%"=="" if exist "%epocroot%epoc32\java" set _epoc_drive_j=%epocroot%epoc32\java
if "%_epoc_drive_t%"=="" if exist "%epocroot%erj" set _epoc_drive_t=%epocroot%erj
if not "%_epoc_drive_j%"=="" echo _epoc_drive_j=%_epoc_drive_j%
if not "%_epoc_drive_t%"=="" echo _epoc_drive_t=%_epoc_drive_t%
perl -S pjava.pl %1 %2 %3 %4 %5 %6 %7 %8 %9
:END

Copiare poi il file .jar nel percorso C:\Symbian\UIQ_21\epoc32\Java\ext (il classpath dell'emulatore)

Fatto ciò, digitare:
pjava_g MyAppName.class
per lanciare l'applicazione sull'emulatore: dovrebbe partire in background, per cui usare CTRL+ALT+SHIF+T per attivarla.
Notare che chiudendo l'applicazione Java si chiuderà in questo caso anche l'emulatore: per lasciarlo aperto, avviarlo a parte e lanciare l'applicazione dall'emulatore.



Indice degli appunti di programmazione:

Appunti di programmazione in ambiente Symbian C++
Usare Carbide.c++
Importare un progetto in Carbide.c++ da un file .MMP
Compilare un eseguibile Symbian .exe multiplatform
Appunti di programmazione PersonalJava
Compilare un'applicazione PersonalJava, creare i file .APP, .AIF e .TXT per lanciarla, e installarla sull'emulatore.  
Appunti di programmazione Java Midlet