Visualizzazione dei risultati da 1 a 5 su 5
  1. #1

    [Pillola Java] Lanciare comodamente Java da un .exe

    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.

  2. #2

    Metodo alternativo

    E io invece propongo un metodo alternativo, che non si sa mai

    Materiale necessario:
    La classe java (anche il semplice HelloWorld di cui sopra), o meglio il jar
    JElude, che non è altro che uno script per un programma di installazione, NSIS

    Allora, parto già dal presupposto che sappiamo già come creare file jar dalle nostre classi

    Per creare allora la nostra applicazioncina, basta che facciamo una copia del file .nsi (dal sito Jelude di cui sopra), che contiene le istruzioni per creare il .exe, e lo chiamiamo pippo.nsi
    Apriamo col blocco note, e dobbiamo modificare 4/5 righe:
    !define APPNAME "Pippo"
    qui mettiamo il nome dell'applicazione, quella che compare nel task manager, per intenderci
    !define JARFILE "Pippo.jar"
    ovviamente il jar creato da noi
    Icon "pippo.ico"
    l'icona che associata al .exe (va creata con un programma apposito, stile microangelo) (facoltativo)
    OutFile "pippo.exe"
    il .exe
    e infine il messaggio nel caso in cui sulla macchina dell'utente non sia presente una JVM, messaggio che inizia con MessageBox; se vogliamo anche la riga successiva, che apre di default il sito di java per scaricare il jre

    salviamo il file pippo.nsi, e sempre da riga di comando digitiamo
    makensis pippo.nsi
    et voilà! ecco il nostro .exe!
    23-08-2005: Udinese in cémpions lìg
    Questa estate l'ho passata a Tallin

  3. #3
    Utente di HTML.it
    Registrato dal
    Feb 2004
    Messaggi
    724
    ho cliccato il link JElude per scaricare il file, ma mi fa il redirect automatico al sito www.cjb.net come faccio??? mi puoi passare il file direttamente???
    grazie

  4. #4
    Rilancio...
    provate Jsmooth,scritto in java,abbastanza completo,licenza GPL
    Il centro dell'attenzione non è sempre un buon posto in cui trovarsi

    Mai discutere con uno stupido, la gente potrebbe non capire la differenza. (O. W.)

  5. #5
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,288
    "BUMP!"
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved.