Ovviamente si puo' fare e c'e' un modo “ufficiale”/"perfetto" per farlo.
Preambolo:
ti serve imparare PROPRIO Java? O ti basta un linguaggio per fare esperimenti?
Questo perche' Java e' un GRAN linguaggio di programmazione, ma per un “neofita” in generale e' SUPER sovvrabbondante.
L'alternativa moooolto piu' semplice e' Python: ha una sintassi strana MA dalla sua parte ha che tutto il mondo del Machine Learning, Intelligenza Artificiale, ChatGPT e compagnia bella si basano su Python.
(Attenzione: Python fa SOLO dal “collante” a cose scritte in C/C++/assembler, che fanno le cose “serie”)
Diventi operativo in un decimo del tempo che hai impiegato con Java.
A parte questo, SE intendi continuare con Java il trucco (che trucco non e') e' “semplice”: ti servono 3 TRE progetti
- Una LIBRERIA Lib contenente le tue classi IN COMUNE
- l'APPLICAZIONE A che USA la libreria Lib
- l'APPLICAZIONE B che USA la libreria Lib
.
Considera che queste “librerie” le usi in continuazione ogni volta che scrivi in un file sorgente Java la stringa “import a.b.Ciccio;”
In questo caso le librerie le trova in automatico la VM Java perche le ha in pancia, in alternativa bisogna
- crearla, cioe' creare il “.jar” contenente le tue classi COMPILATE
- oppure scaricarla dal sito che la mette a disposizione (un classico e' "Maven Central")
- indicare alle applicazioni che devono usare OLTRE alle librerie di default, ANCHE la tua libreria
.
Considera che in Python hai ESATTEMENTE lo stesso problema: non cambia una virgola.
Ed e' la STESSA IDENTICA cosa con OGNI linguaggio di programmazione.
Ora, come si fa tutto questo?
Non e' difficile MA ci sono capitoli interi di decine di pagine su qualunque buon libro su Java che lo spiega.
Inoltre un “buon IDE” ti semplifica molto la vita perche' fa tutto lui:
- si occupa di capire QUALI sorgenti sono cambiati E RICOMPILARLI
- si occupa di CAPIRE l'ordine di compilazione (PRIMA la libreria POI il progetto)
- si occupa di AGGIORNARE le librerie usate nei progetti (la libreria del progetto e' vecchia? Ricupera la version piu' aggiornata!)
.
Insomma, fa tutto il lavoro “stupidino” (che stupidino non e') automaticamente.
Dove sta' l'inghippo? Che devi “configurare” i vari progetti nel modo giusto, altrimenti non funziona ‘na cippa’.
Spiegarlo a son di post, sarebbe un “incubo” ;-)
Il motivo e' banale: NON C'E' solo da capire come creare la libreria, MA ANCHE come configurare il “classpath”, ed n-mila altre cose …
Insomma: i concetti sono diversi e vanno capiti TUTTI.