Visto il fatto che molte persone si lamentano xchè non esiste un modo comodo di lanciare un'applicazione Java, ho trovato un modo molto carino e facile per farlo. Poichè scrivo applicazioni gestionali per amici che hanno negozi, officine e varie allora mi sono impuntato xchè non mi piaceva il fatto che lanciassero la mia applicazione da un .bat!
Cosa ci serve per completare l'operazione:
- Borland Delphi 6 Personal Edition (Gratis)
- classe Java di prova (magari Hello World)
- DJBridge (Progetto open source lo trovate su sourceforge.net(projects)
Praticamente il tutto nient'altroè che il lancio di una classe Java da codice Delphi.
(Considerate che non sono pratico di programmazione delphi quindi se dico qualche inesattezza scusatemi)
Cosa fare:
- Creare un progetto vuoto in Delphi (eliminare anche il Form1 che mette di default) per esempio Project1.dpr
- Scriviamo il seguente codice in Project1.dpr:
codice:
program Project1;
uses
SysUtils,
Classes,
JavaRuntime;
{$R *.res}
var
Strings : TStringList;
Runtime : TJavaRuntime;
begin
try
Strings := TStringList.Create;
Runtime := TJavaRuntime.GetDefault;
Runtime.CallMain('HelloWorld', Strings);
Runtime.Wait;
Strings.Free;
except
on EJvmException do
ShowException(ExceptObject, ExceptAddr);
end;
end.
Mettete al posto di HelloWorld, il nome della classe che volete lanciare.
Notare che se volete passare argomenti al main della funzione che state lanciando dovete scriverli nell'array Strings che passate alla funzione Runtime.CallMain(..).
Compilate ed eseguite il programma Project1.exe e con stupore vedrete la nostra classe partire come fosse un normale eseguibile win32!
Da notare il fatto che bisogna mettere i seguenti file .pas nella stessa directory del progetto che state compilando:
- JavaRuntime.pas
- JUtils.pas
- JNI.pas
- JNIWrapper.pas
In questo piccolo codice che ho scritto credo ci sia bisogno soltanto della libreria JavaRuntime.pas (dico credo xchè di delphi non capisco nulla!!!)
Questi file li trovate all'interno del file jni_wrapper.zip che scaricherete da sourceforge.
Naturalmente ci sarà sempre bisogno della JVM per far partire le applicazioni ma cmq questo è un modo molto più carino per avviarle rispetto che a cliccare 2 volte su uno scialbo file .bat. Naturalmente questa cosa è solo la + stupida che si può fare tramite queste librerie che permettono una comunicazione tra java e delphi.