Consigli per un IDE

di il
10 risposte

Consigli per un IDE

Salve a tutti, ho iniziato a programmare in java come autodidatta da circa 4/5 mesi.
Devo scrivere un semplice programma che prenda degli input dall'interfaccia e mi scriva un documento .docs formattato in una determinata maniera.
Programmo da circa 5 anni in C e C++ e non ho mai utilizzato ambienti di sviluppo, ho sempre scritto il codice in un editor di testo, specialmente Atom, e poi compilato.
Anche con il Java ho lavorato in questa maniera fino ad adesso, solo che mi sono ritrovato a dover utilizzare Apache POI e non riesco ad utilizzarlo.
Da quello che ho capito per semplificarsi la vita conviene utilizzare un IDE, il problema è che non sono molto esperto in questo ambiente quindi mi servirebbero alcune delucidazioni.
Questo programma non deve stare sul mio PC ma sarà utilizzato su più macchine in ufficio, quindi volevo sapere se un progetto sviluppato con un IDE può funzionare anche fuori di essa.
Inoltre avrei anche bisogno di un consiglio su quale è una buon IDE da utilizzare e magari un rimando ad una guida per imparare ad usarla nel "breve" periodo. (Anche se probabilmente oltre all'utilizzo di Apache POI non credo di utilizzarla più)

Grazie mille per la collaborazione.

P.S. Non ho trovato nessuna discussione di benvenuto dove presentarmi, quindi mi scuso se ho infranto qualche regola, provvedo a correggere subito se mi suggerite come fare.

10 Risposte

  • Re: Consigli per un IDE

    Un IDE non e' niente di piu' che un editor di testo con un SACCO di funzionalita' in piu'.

    Ma alla fin fine e' un editor.

    QUINDI, l'IDE non ti cambia il modo di realizzare i programmi.

    Apache POI NON CENTRA NIENTE con l'IDE/editor: se non riesci ad usarlo, NON E' colpa dell'editor, ma di come stai scrivendo il codice.

    Quindi, da questo punto di vista, se non hai sentito la necessita' di un editor un po' piu' evoluto fino ad ora, e' inutile che ti scorni con un tale oggetto.
  • Re: Consigli per un IDE

    Ok allora se riesco ad evitare di dover usarlo preferisco.
    Solo che non sono riuscito a trovare da nessuna parte come far funzionare Apache POI senza utilizzare un IDE, sapete consigliarmi una guida dove lo spiegano?
  • Re: Consigli per un IDE

    Https://poi.apache.org/components/spreadsheet/quick-guide.html
  • Re: Consigli per un IDE

    paol_pal ha scritto:


    Solo che non sono riuscito a trovare da nessuna parte come far funzionare Apache POI senza utilizzare un IDE, sapete consigliarmi una guida dove lo spiegano?
    Se non usi un IDE .... allora devi spiegare COME compili/avvii la applicazione. Fai tutto "a mano" con i tools del JDK? Cioè javac/java(/jar se vuoi impacchettare)
    Oppure usi un tool di build es. Apache Ant o Apache Maven?
  • Re: Consigli per un IDE

    Faccio tutto a mano, perché come ho già detto ho iniziato a programmare da poco in java e sono abituato a compilare ed eseguire tutto da linea di comando (appunto javac/java/jar).
    Quello che voglio realizzare però è un eseguibile jar. Per ora funziona per quello che sono riuscito a fare, il programma che utilizza un'interfaccia realizzata con SceneBuilder mi apre un form che vado a compilare, dopo di che posso salvare i dati che ho immesso in un file che genero, grazie allo scheletro di classi serializzabili che ho creato per immagazzinare i dati. Posso anche riaprire i dati che ho salvato alla stessa maniera. Il problema mi si è palesato solo quando sono arrivato a dover usare Apache POI.
    Sono completamente spiazzato, sapete darmi dei consigli?
  • Re: Consigli per un IDE

    paol_pal ha scritto:


    Faccio tutto a mano, perché come ho già detto ho iniziato a programmare da poco in java e sono abituato a compilare ed eseguire tutto da linea di comando (appunto javac/java/jar).
    Se compili "a mano" con i tools del JDK c'è una cosa importante da sapere (prima di tante altre cose): il concetto di "classpath" e la correlazione con i nomi dei package. Altri jar esterni vanno semplicemente messi "in classpath".

    Da Java 9 è stato introdotto il "module system" che è un modo più completo e forbito per realizzare applicazioni modulari in cui ciascun modulo è in grado di dichiarare espressamente quali sono le sue dipendenze e cosa invece "esporta". Ed è di fatto un superamento del concetto di classpath.
    Usare il module system però non è ancora obbligatorio, quindi il concetto di classpath (e doverlo sapere) resta ancora.
  • Re: Consigli per un IDE

    Ho letto diverse guide e per far utilizzare Apache POI e il class path saltava sempre fuori. Però non ho ben capito come funziona.
    Praticamente è il percorso dove il compilatore va a ricercare le classi che possono essere utilizzate nel programma? (Questo è quello che mi è sembrato di intuire).
    Ho visto anche che non è obbligatorio andare a modificare il classpath fisso, ma lo si può modificare durante la fase di compilazione.
    Potete darmi delle delucidazioni? Perché adesso sono riuscito a compilare ma in fase di esecuzione esce questo errore : java.lang.NoClassDefFoundError.
    Da quello che ho capito sono riuscito a compilare nella maniera corretta, ma poi in esecuzione non riesce a raggiungere le classi esterne, può essere?
  • Re: Consigli per un IDE

    paol_pal ha scritto:


    Ho visto anche che non è obbligatorio andare a modificare il classpath fisso, ma lo si può modificare durante la fase di compilazione.
    Certo, c'è la variabile di ambiente CLASSPATH e poi l'opzione -classpath/-cp dei tools (e anche in un jar c'è una specifica del classpath nel suo "manifest").

    paol_pal ha scritto:


    Potete darmi delle delucidazioni?
    Hai es. una tua classe com.esempio.Prova (ipotizziamo con il main() ) che è messa es. in
    C:\progetti\prova1\com\esempio\Prova.java

    Quindi ti metti come directory "corrente" in C:\progetti\prova1 e dai:

    javac -classpath .;C:\blabla\apache-poi.jar com\esempio\Prova.java

    poi per eseguire

    java -classpath .;C:\blabla\apache-poi.jar com.esempio.Prova

    Ovviamente "C:\blabla\apache-poi.jar" ... quello che è realmente!
  • Re: Consigli per un IDE

    Sto provando a compilare, ma non riesco farlo nel modo giusto sicuramente.
    Posso includere più file.jar utilizzando *.jar oppure devo scrivere il percorso di ognuno?
  • Re: Consigli per un IDE

    paol_pal ha scritto:


    Sto provando a compilare, ma non riesco farlo nel modo giusto sicuramente.
    Posso includere più file.jar utilizzando *.jar oppure devo scrivere il percorso di ognuno?
    Il "classpath" è semplicemente un ELENCO di directory e/o file .jar (quanti ne vuoi/servono) che sostanzialmente fanno da "basi" per rintracciare le classi.

    Se in classpath ci fosse (e directory corrente es. C:\prove)

    .;C:\blabla\lib1.jar;C:\blabla\lib2.jar

    Allora se la JVM deve rintracciare una classe com.esempio.Prova fa le seguenti verifiche:

    1) Esiste un C:\prove\com\esempio\Prova.class ?
    2) Esiste un com\esempio\Prova.class dentro C:\blabla\lib1.jar ?
    3) Esiste un com\esempio\Prova.class dentro C:\blabla\lib2.jar ?

    Se uno di questi (il primo che trova) è ok, bene. Altrimenti NoClassDefFoundError.

    Questo è il motivo per cui i package si DEVONO sempre "riflettere" nella struttura delle directory. Data una classe com.esempio.Prova la JVM la traduce in un path parziale com\esempio\Prova.class (quindi si aspetta questa struttura) e poi cerca questo path "sotto" tutte le basi elencate in classpath.

    Se hai capito questo, hai compreso il classpath.
Devi accedere o registrarti per scrivere nel forum
10 risposte