Prime applicazioni java con eclipse

di il
7 risposte

Prime applicazioni java con eclipse

Salve a tutti sono un principiante che da poco ha iniziato a cimentarsi nella programmazione java. Sto realizzando una applicazione java con eclipse con l'aiuto di un manuale pratico. Questa app contiene una semplice casella di testo, una checkbox ed un pulsante. Nella casella scrivo quello che voglio, con il pulsante cancello tutto il testo e, abilitando la checkbox il colore del testo da nero diventa rosso e viceversa. L'applicazione, benché confesso non sia tutta farina del mio sacco, funziona se premo "run" per compilare ed eseguire. Ora ho provato ad esportarla in .jar provando ad aprirlo da pc, andando su "export" in formato .jar . Il file viene creato, ma se vi clicco, non si avvia nulla . Oltre a questo, vi è una cosa che non capisco: questo file .jar, qualora si avviasse, sarebbe eseguibile sia da cellulare che da pc?
Scusate ma sono un principiante e rischio di perdermi anche su cose banali e sparare cavolate, chiedo venia in anticipo.
Qui è dove compilo il programma e gira correttamente
1.jpg
1.jpg

Qui è dove vado per esportare il .jar (Come detto prima se poi provo ad aprirlo non si apre nulla)
2.jpg
2.jpg

Grazie per l'ascolto

7 Risposte

  • Re: Prime applicazioni java con eclipse

    JavaProject2016 ha scritto:


    Ora ho provato ad esportarla in .jar provando ad aprirlo da pc, andando su "export" in formato .jar . Il file viene creato, ma se vi clicco, non si avvia nulla .
    Per poter avviarlo con doppio-click:
    a) ci deve essere la associazione tra l'estensione .jar e il tool 'java' (o tipicamente javaw su Windows). Generalmente installando un JDK/JRE si ha questa associazione. Ma potrebbe cambiare, potrebbe essere corrotta per vari motivi, potrebbe puntare ad un path che poi hai rimosso. Non so ...
    b) il jar deve essere generato correttamente e con il "manifest" (file META-INF/MANIFEST.MF nel jar) che contiene almeno l'attributo Main-Class (altrimenti il jar non sarebbe lanciabile)

    La prova vera è: prompt dei comandi e poi java -jar xyz.jar
    Il java.exe deve essere chiaramente in PATH per poterlo avviare senza specificare un percorso.

    JavaProject2016 ha scritto:


    sarebbe eseguibile sia da cellulare che da pc?
    La tua è una applicazione "desktop" ... solo PC.
  • Re: Prime applicazioni java con eclipse

    E anzi, scusa ... vedendo meglio lo screenshot, vedo ora che è avviata nel Applet viewer, qundi è una "applet" (una tipologia di applicazione che gira in una pagina web dentro un browser)

    Pertanto non è una applicazione desktop standalone e quindi NON può essere avviata con doppio-click o come ho detto io.
  • Re: Prime applicazioni java con eclipse

    Ciao, grazie per la rapida risposta, vorrei gentilmente sapere: cosa contraddistingue una applicazione da web da una per computer o cellulare? Chiedo questo perché, leggendo su vari manuali, si parla sempre della java virtual machine e del nostro programma che non ha bisogno di essere ricompilato per passare da una piattaforma all'altra proprio grazie alla JVM.
    Magari, se conoscete dei libri che chiariscono proprio questi concetti, fatevi avanti
  • Re: Prime applicazioni java con eclipse

    JavaProject2016 ha scritto:


    Ciao, grazie per la rapida risposta, vorrei gentilmente sapere: cosa contraddistingue una applicazione da web da una per computer o cellulare? Chiedo questo perché, leggendo su vari manuali, si parla sempre della java virtual machine e del nostro programma che non ha bisogno di essere ricompilato per passare da una piattaforma all'altra proprio grazie alla JVM.
    Magari, se conoscete dei libri che chiariscono proprio questi concetti, fatevi avanti
    Se ci siano libri che coprono tutte queste cose ... non so ... c'è troppa "carne al fuoco" in questo contesto.

    La Java Virtual Machine è un software che esegue il bytecode ovvero il codice binario generato dalla compilazione dei sorgenti .java. Questo bytecode non è né un codice sorgente (testuale) né un codice macchina di un processore fisico esistente ma è un codice intermedio che è stato inventato originalmente dalla Sun Microsystems.
    Il termine "bytecode" comunque è ormai abbastanza generale, nel senso che anche altri linguaggi hanno la loro macchina virtuale e il loro bytecode. Qui però parlo solo riferito a Java, ovviamente.

    Il punto NON è tanto la JVM ... dove c'è una JVM, puoi certamente eseguire del bytecode Java. Quello che cambia da una piattaforma ad un'altra es. da un PC ad un cellulare o un set-top box sono altre cose, tra cui:
    - il framework base di classi messo a disposizione dalla piattaforma
    - il "ciclo di vita" della applicazione
    - il modo di "impacchettare" e rilasciare le applicazioni

    Su PC una applicazione "standalone" (che sia console oppure grafica) ha una classe con il classico metodo public static void main(String[]) che è il punto di ingresso e avvio della applicazione.
    Sempre su PC una "applet" (che NON è una applicazione "standalone") deve avere una classe che estende java.applet.Applet e che ha i metodi init/start/stop/destroy e sono questi che rappresentano il "ciclo di vita" della applicazione. NON c'è il main, quindi ovviamente non parte come fa una applicazione standalone.
    Ma in entrambi i casi, sia applicazioni standalone che applet, possono usare il framework di classi della piattaforma Java SE (Standard Edition), tra cui AWT (java.awt ecc...) e molto altro.

    Sui cellulari (quelli vecchia maniera, non gli Android) si può utilizzare Java ME (Micro Edition) che è tutto un altro framework, anche se ci trovi molte classi di base che sono quasi (se non esattamente) identiche a quelle di Java SE. Ma anche qui il ciclo di vita delle applicazioni e il modo di impacchettarle è differente. E Android (che si sviluppa scrivendo codice con le regole e la sintassi di Java) è ancora un altro discorso, un'altra piattaforma.

    Tutto questo solo per dire: non puoi fare una applicazione standalone su PC e pensare di farla girare su un cellulare o altre cose del genere.

    Se quello che ti ho detto, ti è sufficiente, bene. Se Java ti piace e ti interessa continuare, il consiglio che dò sempre è di studiare il linguaggio Java bene, almeno fino a conoscere tutte le feature di Java 1.4, 5 (soprattutto), 7 e magari anche quelle della 8. Se sei agli inizio ti sconsiglio di partire "in quarta" su web application (Java EE), Java ME, Android o cose del genere ... faresti un gran miscuglio.
  • Re: Prime applicazioni java con eclipse

    Versione breve dell'esaustivo post precedente.

    NON PUOI far funzionare un'applicazione "da PC" java su Android o IOS, questo poichè, essenzialmente, MANCA la java virtual machine standard (*cuttone su dalvik e chi più ne ha ne metta)

    PS tra l'altro questo è uno dei principali motivi per cui, a mio parere, java (inteso come write once, run ... non si sa dove...) finirà per essere fortemente ridimensionato nella sua ubiquità.
    Assenza di supporto (per ora almeno) di mobile
  • Re: Prime applicazioni java con eclipse

    Salve. In relazione a quello che mi avete detto, visto che mi piacerebbe imparare seriamente, opterei per apprendere le cose con calma come mi avete consigliato. Stavo guardando i seguenti libri: Core Java 1 e Core Java 2 di Horstmann Cay S.; Cornell Gary.
    La versione tradotta in italiano si trova fino all'anno 2005, l'originale in inglese fino al 2015...
    Mi consigliate di prendere la versione tradotta in italiano più vecchia oppure la versione in inglese più recente?
    Me la cavo bene con l'inglese ma non vorrei che con libri non scritti in lingua madre l'apprendimento possa diventare più complicato..
  • Re: Prime applicazioni java con eclipse

    JavaProject2016 ha scritto:


    Mi consigliate di prendere la versione tradotta in italiano più vecchia oppure la versione in inglese più recente?
    Inglese! Tieni anche presente che se stai imparando Java da (quasi) zero, non ti dovrebbero interessare subito le "novità" più recenti del linguaggio (es. le nuove feature di Java 8 e neanche forse della 7).

    Riguardo l'inglese, se ad esempio riesci a leggere tranquillamente la documentazione javadoc del framework standard, allora non dovresti avere in generale grossi problemi con libri "tecnici" di quel tipo.
Devi accedere o registrarti per scrivere nel forum
7 risposte