Pagina 1 di 4 123 ... UltimoUltimo
Mostra risultati da 1 a 10 di 31

Discussione: programmare in Java attraverso Geany

  1. #1
    Data registrazione
    Apr 2019
    Sesso
    Uomo
    Messaggi
    17
    Grazie dati 
    0
    Grazie ricevuti 
    4
    Ringraziato in
    3 post

    programmare in Java attraverso Geany

    Sto cercando di prendere confidenza con Java, ma come se non bastassero le difficoltà del linguaggio, si aggiungono quelle dei tanti IDE disponibili per il linguaggio.
    Purtroppo dispongo di un pc desktop datato che non può sopportare l'impegno delle risorse necessarie ai vari Eclipse, NetBeans, Visuals Sudio code. Allora, piuttosto che usare un semplice Editor di Testo, mi sono orientato su Geany.
    Cercando sul connubio Java-Geany, ho trovato questa discussione
    Ho deciso allora di iscrivermi alla comunità.
    Vorrei infatti chiedere a Andy86, ma non soltanto a lui, se Geany riesce a gestire progetti Java con più classi e, in caso affermativo, come si fa ad aggiungere una classe ad un progetto.

    Rispondi citando Rispondi citando Il mio PC

  2. # ADS
    Google Adsense Circuito Adsense
    Data registrazione
    da sempre
    Messaggi
    molti
     
  3. #2
    Data registrazione
    Jan 2010
    Sesso
    Uomo
    Messaggi
    18,827
    Grazie dati 
    5,603
    Grazie ricevuti 
    3,663
    Ringraziato in
    2,976 post

    Riferimento: programmare in Java attraverso Geany



    Dipende cosa intendi per "gestire".

    Geany è un editor "semplice", in automatico non "gestisce" nulla. Le cartelle relative ai package te le devi creare da solo.

    Io l'ho scelto perché non ho mai seguito progetti seri ma solo cose, diciamo, a scopo didattico.
    (come dici tu "giocavo a scrivere programmini da passatempo")

    Il menù progetto che vedi in alto ti permette solo di salvare alcune impostazioni personalizzate se diverse da quelle impostate per tutti i file (ad esempio se per un progetto vuoi un'indentazione diversa, ma non vuoi che la modifica interessi tutti gli altri file che andrai ad aprire).

    Se intendi navigare file e cartelle del "progetto" dall'interno di Geany puoi abilitare il plugin "esplorazione file" da "strumenti -> gestione plugin". A me basta e avanza quello.
    Ultima modifica di Andy86; 18-04-19 alle 10: 33.
    #SaveYourInternet - Fight the #CensorshipMachine
    «non esistono "mani destre di Dio" ma solo utenti con la volontà di aiutare.» (LadyHawke)

    Rispondi citando Rispondi citando Il mio PC

  4. #3
    Data registrazione
    Apr 2019
    Sesso
    Uomo
    Messaggi
    17
    Grazie dati 
    0
    Grazie ricevuti 
    4
    Ringraziato in
    3 post

    Riferimento: programmare in Java attraverso Geany

    Si Geany non è un IDE. Io vorrei solo capire come posso organizzare un progetto java utilizzando Geany o, al limite, un altro editor di testo. Geany mi da qualche piccolo aiuto, come quello di potere organizzare il codice necessario aiutandomi con l'indentazione del codice, attraverso la pressione del tasto di tabulazione.
    Un progetto contiene oltre alla classe contenente il metodo main anche altre classi ed ogni classe ha al suo interno diversi metodi. Mi è anche noto che la classe principale (quella col main) deve avere lo stesso nome del file.java del progetto, ma niente toglie che la cartella di progetto possa essere creata sempre con lo stesso nome:
    Es.:
    -> Cartella AggPiacon
    --> AggiPiacon.java
    --> CreaDB
    --> ClasseN1
    --> ...
    --> ClasseNn
    In Geany, per quanto visto, ciascuna classe elencata nell'esempio, occuperà un file , ma con quale estensione?
    Inoltre avviando la compilazione di "AggiPiacon.java", il compilatore riconoscerà e comprenderà nella compilazione anche tutte le altri classi contenute nella stessa directory "AggPiacon"?
    Sicuramente, scrivendo il progetto all'interno di un IDE, non mi verrebbero alla mente simili domande, ma nella mia realtà tipica del manuense informatico, si.

    Rispondi citando Rispondi citando Il mio PC

  5. #4
    Data registrazione
    Jan 2010
    Sesso
    Uomo
    Messaggi
    18,827
    Grazie dati 
    5,603
    Grazie ricevuti 
    3,663
    Ringraziato in
    2,976 post

    Riferimento: programmare in Java attraverso Geany



    Allora, intanto in Java, a prescindere dall'editor che scegli, ogni classe PUBBLICA deve SEMPRE occupare un solo file e deve SEMPRE avere il nome del file che occupa, altrimenti ti da errore in compilazione. Di solito tutte le classi in java hanno estensione .java a prescindere, non so se il compilatore si offende se l'estensione è diversa ma sospetto di sì.

    Se ti serve un ripasso delle basi ti consiglio il canale youtube di fcamuso, che trovo molto ben fatto e con spiegazioni molto chiare.

    Tornando a Geany, non c'è quasi niente che lui faccia in automatico, creare file in Geany è equivalente a creare le classi con "click destro -> crea -> nuovo file di testo" nel gestore file e poi editarli uno per uno con Geany. Al massimo ci sono i plug-in "crea classe" ma non so se ce ne siano per Java.

    Io faccio semplicemente "nuovo file", lo intesto a mano e poi lo salvo indicando manualmente nome e directory.

    Per quando riguarda la compilazione basta che leggi la mia discussione che hai linkato e ti accorgerai che mi sono imbattuto nello stesso identico problema. Compilare in Geany equivale a farlo attraverso il terminale con il comando Javac, configurare Geany serve solo a risparmiarsi un passaggio potendo premere il tasto "play" all'interno di Geany.
    #SaveYourInternet - Fight the #CensorshipMachine
    «non esistono "mani destre di Dio" ma solo utenti con la volontà di aiutare.» (LadyHawke)

    Rispondi citando Rispondi citando Il mio PC

  6. #5
    Data registrazione
    Apr 2019
    Sesso
    Uomo
    Messaggi
    17
    Grazie dati 
    0
    Grazie ricevuti 
    4
    Ringraziato in
    3 post

    Riferimento: programmare in Java attraverso Geany

    Citazione Originariamente scritto da Andy86 Vedi messaggio

    Se ti serve un ripasso delle basi ti consiglio il canale youtube di fcamuso, che trovo molto ben fatto e con spiegazioni molto chiare.
    Si conosco quella playlist. L'ho seguita e l'ho trovata molto utile, anche se si appoggia all'IDE Eclipse.
    Io vorrei imparare intanto a creare un progettino con più classi Public, di cui solo una è quella contenente il metodo main.
    Es. Se la directory contenente i miei file .java è:
    ├── AggUltUsoPiacon (/media/dirdati/dativari/java_vari/Java_Progetti_miei/AggUltUsoPiacon)
    │ ├── AggUltUsoPiacon.java (contiene metodo main)
    │ └── ConnettiPiancont.java
    e ConnettiPiancont è richiamata in AggUltUsoPiacon.java con :
    Codice:
    Only registered members can view code.
    non riesco ad eseguire correttamente la compilazione, infatti ricevo alcuni errori fra cui:
    Codice:
    Only registered members can view code.
    dove sbaglio?

    Rispondi citando Rispondi citando Il mio PC

  7. #6
    Data registrazione
    Jan 2010
    Sesso
    Uomo
    Messaggi
    18,827
    Grazie dati 
    5,603
    Grazie ricevuti 
    3,663
    Ringraziato in
    2,976 post

    Riferimento: programmare in Java attraverso Geany

    "cannot find symbol" significa che non esiste alcuna variabile dichiarata con quel nome.
    Java è un linguaggio fortemente tipizzato, quindi la dichiarazione è SEMPRE obbligatoria, e le classi devono sempre corrispondere al tipo dichiarato o essere una sottoclasse.

    O fai:
    ConnettiPiancont creaConn = new ConnettiPiancont(dirProg);

    Dichiarazione implicita, non visibile fuori dalle grafe più prossime.

    Oppure all'inizio della classe metti:

    ConnettiPiancont creaConn; (dichiarazione esplicita equivalente a un puntatore nullo di C).


    Comunque "dirProg" a che ti serve?

    A parte la dubbia utilità di passare un parametro statico al costruttore, mi sfugge il senso di richiamare un file java all'interno del codice.
    #SaveYourInternet - Fight the #CensorshipMachine
    «non esistono "mani destre di Dio" ma solo utenti con la volontà di aiutare.» (LadyHawke)

    Rispondi citando Rispondi citando Il mio PC

  8. #7
    Data registrazione
    Apr 2019
    Sesso
    Uomo
    Messaggi
    17
    Grazie dati 
    0
    Grazie ricevuti 
    4
    Ringraziato in
    3 post

    Riferimento: programmare in Java attraverso Geany

    Grazie Andy86, mi sono accorto solo ora della tua risposta.
    Scusami se non rispondo adesso alle tue indicazioni; è perchè, prima di ritornare a questa discussione, oggi ho riletto quanto avevi scritto nel messaggio che mia hai linkato inizialmente, ho pensato ad una prova ed ho fatto una compilazione col comando javac e vorrei condividere questa mia esperienza, per capire se ho aggiunto un nuovo errore al mio modus operandi o se, invece, ho imbroccato la strada giusta:
    Codice:
    Only registered members can view code.
    Ho tentato, lasciando inalkterato i 2 file col codice sorgente, di avviare una compilazione dei due file .java, pensando che così facendo potessero essere fusi dal compilatore in un unico pacchetto. Purtroppo la compilazione ha prodotto errori, quindi non ho potuto capire se ha riguardatao tutte e due le classi o solamente la seconda. Infatti gli errori segnalati sono tutti riferiti al codice del file "ConnettiPiancont.java".

    Per tornare alla tua domanda sull'istruzione
    Codice:
    Only registered members can view code.
    per cui mi chiedi
    Comunque "dirProg" a che ti serve?
    secondo me, sarebbe servito, in compilazione per fare riconoscere al compilatore la dipendenza di ConnettiPiancont.java dal programma chiamante.
    Ancora ora non riesco a capire come si possa riunire in un unico pacchetto le classi .java che lo dovrebbero costituire.
    Se ho fatto confusione, ti prego di comprendere la mia assoluta inesperienza. Possiamo sempre "fare 3 passi indietro con tanti auguri" e riprendere le problematiche una alla volta.

    Rispondi citando Rispondi citando Il mio PC

  9. #8
    Data registrazione
    Jan 2010
    Sesso
    Uomo
    Messaggi
    18,827
    Grazie dati 
    5,603
    Grazie ricevuti 
    3,663
    Ringraziato in
    2,976 post

    Riferimento: programmare in Java attraverso Geany

    Si, facciamo 3 passi indietro che è molto meglio.

    Intanto scordati il termine "pacchetto" che non è assolutamente obbligatorio per un esecuzione corretta del programma.
    Al massimo una volta terminato il tuo software potrai creare un file jar per mantenere tutti i file dentro un unico eseguibile, ma per il momento hai bisogno solo di riuscire a compilare per testare il tuo codice.

    Per fare in modo che il compilatore veda le classi che si vanno a referenziare si usano i package e gli import (in modo simile ma differente da C o C++).

    Provo a spiegarti tornando al tuo esempio ma senza riportare i nomi delle tue classi che se no non finisco più (che già mi viene lunga la spiegazione).
    |-- miei_progetti
    _| -- mio_progetto
    __|-- Classe1.java (con main che richiama "new Classe2();")
    __|-- Classe2.java

    Se tu compili Classe1.java il compilatore non trova Classe2.java per il semplice motivo che non sa dove trovarla (e forse fin qui te ne sei accorto da solo), allora dobbiamo dire a java dove trovare le classi, facciamo così:

    1 - intestiamo tutte le classi con: "package mio_progetto;" senza virgolette (il nome DEVE corrispondere a quello della cartella in cui si trova la classe perché java, che è un linguaggio pignolo, non solo lo userà per trovare il file ma soprattutto per verificare che il file sia proprio quello che stiamo cercando, per cui se il package non corrisponde scatta l'errore in compilazione come a dire "attento: forse quel file non dovrebbe trovarsi in quella posizione ma ci è stato spostato per sbaglio").

    1B - a questo punto possiamo dire che il compilatore sa dove trovare le classi, ma se avviamo il compilatore all'interno di "mio_progetto" continuerà a non trovarle perché cercherà prima il package (sotto forma di directory) e poi la classe, quindi cercherà la cartella "mio_progetto" all'interno di "mio_progetto", che ovviamente non c'è.

    2 - per risolvere 1B ci spostiamo alla cartella superiore, ovvero in "miei_progetti" e lanciamo il compilatore con "javac mio_progetto/Classe1.java", in questo modo il compilatore, al momento in cui viene richiamata, cercherà "mio_progetto/Classe2.java" partendo dalla cartella superiore a "mio_progetto" e troverà la classe, andando a compilarla in automatico in quanto referenziata.

    Comincia a esserti più chiaro?

    Ora avrai sicuramente letto da qualche parte che gli import facilitano la scrittura delle classi perché ti evitano di indicare il percorso completo, e provo a farti capire cosa centra con quello che ho appena detto mostrandoti tre modi diversi di scrivere Classe1.java (partendo dal presupposto che nella classe principale, e SOLO in quella, la dichirazione del package può essere omessa, anche se non è la procedura consigliata):

    Codice:
    Only registered members can view code.
    Codice:
    Only registered members can view code.

    Codice:
    Only registered members can view code.
    Ovviamente tutti e tre i modi richiedono che, come sopra, si lanci Java (sia il compilatore che l'esecutore) dalla cartella superiore, in modo che il package principale corrisponda alla sottodirectory.

    Ora prova a impostare un progetto secondo questi termini, consiglio il terzo metodo che è quello spiegato sopra, poi pensiamo ai singoli errori di compilazione.

    Ti consiglio di impostare un progetto HelloWorld a più classi per capire la "tecnica", anzi, te ne allego uno pronto così provi a compilarlo ed eseguirlo e vedi se fai nel modo corretto, poi provi ad impostare il tuo progetto nello stesso modo.

    Ah, i comandi sono dati da terminale, non attraverso geany, poi eventualmente vediamo di farti impostare geany per usare i suoi pulsanti, ma per adesso prova a capire le basi. (e se stai pensando alla mia discussione originale, io avevo avuto un problema circa alcune classi che non si compilavano quando il .class era presente finendo in un enigmatico "unresolved compilation error" in esecuzione, ma caso mai avessi quell'errore ci pensiamo dopo).
    File allegati File allegati

    Rispondi citando Rispondi citando Il mio PC

  10. #9
    Data registrazione
    Apr 2019
    Sesso
    Uomo
    Messaggi
    17
    Grazie dati 
    0
    Grazie ricevuti 
    4
    Ringraziato in
    3 post

    Riferimento: programmare in Java attraverso Geany

    Ho capito come organizzare il package ed i file .java che lo riguardano.

    Citazione Originariamente scritto da Andy86 Vedi messaggio
    Ti consiglio di impostare un progetto HelloWorld a più classi per capire la "tecnica", anzi, te ne allego uno pronto così provi a compilarlo ed eseguirlo .
    Ho compilato il progettino di prova che mi hai allegato ed ha funzionato, poi l'ho eseguito da console così:
    Codice:
    Only registered members can view code.
    Non ha prodotto alcun outoput, ma forse non ho capito come avviare un package,
    Ho provato in tanti modi, ma l'unico che non ha prodotto errori è quello riportato nel riquadro sopra.
    Scusami se ti faccio perdere tempo.

    Rispondi citando Rispondi citando Il mio PC

  11. #10
    Data registrazione
    Jan 2010
    Sesso
    Uomo
    Messaggi
    18,827
    Grazie dati 
    5,603
    Grazie ricevuti 
    3,663
    Ringraziato in
    2,976 post

    Riferimento: programmare in Java attraverso Geany



    Quello nel riquadro sopra è il modus operandi giusto ed è per questo che è l'unico che non produce errori.

    Non ti da output perché non gli dai nulla in input. Mancanza mia, ho scritto il codice di getto e non ho messo una verifica del caso.

    Se guardi il codice vedi che prendo in parametro gli "args" passati in parametro al programma e con un print personalizzato li stampo in tutto tre volte per ognuno, attaccando il numero di print a ogni output, quindi per vedere un output dovrai lanciarlo così:

    petrus@petrus-Aspire-M1200-3200-5200:/media/dirdati/dativari/java_vari$ java mio_progetto/MioMain "hello world" qualchecosa

    E l'output sarà:

    hello world 1
    hello world 2
    hello world 3
    qualchecosa 1
    qualchecosa 2
    qualchecosa 3

    -----

    A questo punto prova ad organizzare il tuo progetto nella stessa maniera e se non ti compila posta pure gli errori.
    Ricordati che a volte capire l'origine di un errore di compilazione senza avere il codice sottomano è più difficile.

    Per esempio il tuo errore sul try/catch di cui sopra mi fa pensare che manchi qualche grafa (visto che il compilatore dice che non può andare in quella posizione e di solito è perché manca qualche grafa), ma senza vedere il codice è impossibile saperlo con certezza.
    #SaveYourInternet - Fight the #CensorshipMachine
    «non esistono "mani destre di Dio" ma solo utenti con la volontà di aiutare.» (LadyHawke)

    Rispondi citando Rispondi citando Il mio PC

Segnalibri

Regole di scrittura

  • Tu non puoi inviare nuove discussioni
  • Tu non puoi inviare risposte
  • Tu non puoi inviare allegati
  • Tu non puoi modificare i tuoi messaggi
  •  
Cookies:direttiva 2009/136/CE (E-Privacy)

Il sito utilizza cookies propri e di terze parti per maggiori informazioni faq - Termini di servizio - Cookies
Il forum non puo' funzionare senza l'uso dei cookies pertanto l'uso della community è vincolato dall'accettazione degli stessi, nel caso contrario siete pregati di lasciare la community, proseguendo la navigazione acconsenti all’uso dei cookie