View Full Version : [JAVA] Creare ed utilizzare i package personali
Saretta89
29-04-2008, 11:56
Ciao a tutti...
E' da poco che programmo in java, quindi siate pazienti :)
Vorrei creare un mio package personale contenente delle classi mie, che uso spesso.
La mia idea sarebbe ad esempio di creare un package così composto:
|-sara
|-----insiemeuno
|-----|insiemedue
|-----|----------sottoinsieme
|-----insiemetre
In ogni insieme ci metto delle classi.
Come devo fare?
Io ad esempio utilizzo netbeans... cosa faccio?
creo un nuovo progetto di nome sara
nella classe main ci scrivo package sara;
nelle varie classi ci scrivo package sara.insiemeuno; a seconda dell'insieme in cui voglio metterle
Fin qui faccio giusto?
Poi?
devo creare un jar?
oppure devo creare delle cartelle da qualche parte e metterci i file.java?
:help:
nuovoUtente86
29-04-2008, 12:22
netbeans come gli altri IDe(piu complesso di textpad) permette facilmente di creare e/o associare classi ad un package in fase iniziale di setup della classe.Quando fai la creazione di una nuova classe, ti chiede se associarla ad un package.
Il consiglio ,per ora, quello di imparare le basi del linguaggio piuttosto che perderti in strutturazione e compilazione di package.
Saretta89
29-04-2008, 12:45
netbeans come gli altri IDe(piu complesso di textpad) permette facilmente di creare e/o associare classi ad un package in fase iniziale di setup della classe.Quando fai la creazione di una nuova classe, ti chiede se associarla ad un package.
Il consiglio ,per ora, quello di imparare le basi del linguaggio piuttosto che perderti in strutturazione e compilazione di package.
Le basi e tutto il resto le conosco già. Mi manca solo da imparare questa cosa dei package
nuovoUtente86
29-04-2008, 12:48
Le basi e tutto il resto le conosco già. Mi manca solo da imparare questa cosa dei package
Magari fosse cosi semplice java....se ne parlava in una discussione qualche minuto fa....in informatica non si finisce mai di imparare.Cmq tornando ai package...come ti dicevo basta stabilirli in fase di creazione della classe e l' IDE creerà la struttura per te.
Saretta89
29-04-2008, 12:52
ok....quindi come ho detto, metto la parola chiave package in ogni classe del progetto, giusto?
Poi? come richiamo queste classi da altri progetti?
Se faccio import sara mi dice che manca il punto. se faccio import sara.* mi dice che non lo trova....
ok....quindi come ho detto, metto la parola chiave package in ogni classe del progetto, giusto?
Poi? come richiamo queste classi da altri progetti?
Se faccio import sara mi dice che manca il punto. se faccio import sara.* mi dice che non lo trova....
Del tuo package ne hai fatto un pacchetto jar? se è così basta che inserisci il jar come libreria del tuo nuovo progetto e quindi potrai usare le tue classi importandole come hai fatto (import sara.*).
NapalM
Saretta89
29-04-2008, 13:18
ah ok, quindi devo creare il jar...
Come creo il jar con netbeans 5?
Ho cercato in tutti i menu e non riesco a trovarlo...:confused:
khelidan1980
29-04-2008, 13:45
ah ok, quindi devo creare il jar...
Come creo il jar con netbeans 5?
Ho cercato in tutti i menu e non riesco a trovarlo...:confused:
non uso netbeans ,ma su eclipse fai tasto destro sul progetto e clicchi export,prova a vedere qualcosa di simile!
Saretta89
29-04-2008, 13:52
non uso netbeans ,ma su eclipse fai tasto destro sul progetto e clicchi export,prova a vedere qualcosa di simile!
con eclipse lo so dov'è...ma qui non lo trovo proprio...
morskott
29-04-2008, 14:19
Penso si stiano confondendo 2 aspetti diversi: uso dei package e uso dei Jar.
Riguardo i package il discorso è semplice, dividendo il fatto in 2 casi: uso di un IDE (tipo netbeans come credo di aver capito) e uso nudo e crudo di un text editor (stile notepad per intenderci).
Per il primo caso (Netbeans) uando gli "dici" di creare la nuova classe oltre al nome ti chiede pure in che package posizionarla (la nuova classe) e sarà lui (Netbean) a fornirti il supporto di posizionamento del file e di template della classe (ti mette il file compilato nella cartella "build\classes\tuo_package\TuaClasse.class" e il file "sorgente in src\classes\tuo_package\TuaClasse.java" e nel file ti aggiunge lui la dicitura "package tuo_package;").
Per il reperimento della tua classe "TuaClasse" creata nel package "tuo_package" basta che nella clase che utilizza "TuaClasse" indichi come import il tuo package ("import tuo_package.TuaClasse" o se vuoi importare piu di una classe dal tuo package "import tuo_package.*"), al resto pensa il buon vecchio caro Netbeans.
Se invece vuoi fare tutto di tua mano basta ricalcare i (semplici) passi fatti dall'IDE, posizionare manualmente i files nella cartella giusta(
ROOT
-\package_uno
----classe_uno.java
----classe_due.java
-\package_due
----classe_due.java
) e mettere in testa ad ogni classe il package di appartenenza (in testa a "classe_uno.java" ci vuole "package package_uno;"). (Per la compilazione/esecuzione devi compilare il tutto dalla cartella root con, per esempio, "javac package_uno\classe_uno.java" e "java package_uno.classe_uno")
L'utilizzo rimane immutato.
Per quanto riguarda il discorso dei Jar con Netbeans è ancoa piu semplice, quando dai il comando di "Build" al progetto lui ti genera automaticamente e di default il Jar corrispondende nella cartella "<ROOT>\dist" (per farlo autoeseguibile basta che nelle proprietà del progetto tu abbia specificato quale sia la classe che contiene il main).
Se invece vuoi farlo manualmente devi usare la direttiva "jar" da riga di comando facendoti manualmente il file Manifest.
Non sono come funziona netbeans, ma quando devo crearmi dei package da portare dietro nei vari progetti genero il jar e lo inserisco nelle librerie del progetto che devo usare.
Mi pare che lei abbia chiesto questo no o ho capito male io la sua richiesta?
NapalM
Saretta89
29-04-2008, 15:12
Caspita ora funziona... avevo fatto così anche prima, ma probabilmente non avevo fatto build...chissà...
Grazie comunque :stordita:
Saretta89
29-04-2008, 15:48
Caspita ora funziona... avevo fatto così anche prima, ma probabilmente non avevo fatto build...chissà...
Grazie comunque :stordita:
ehm...come non detto...stesso problema di prima:
import sara.*;
di fianco all'import c'è una x rossa con scritto "package sara does not exist"
ehm...come non detto...stesso problema di prima:
import sara.*;
di fianco all'import c'è una x rossa con scritto "package sara does not exist"
Hai fatto fare tutto a netbeans o hai generato un jar?
Ti spiego come ragiono io (uso eclipse):
- creo il mio package mio.utils; dove inserisco le classi che voglio
- genero il jar utils.jar
- nel nuovo progetto inserisco come libreria la mia utils.jar e poi posso usare tranquillamente le mie classi in mio.utils; eclipse mi inserisce automaticamente l'import del package che utilizzo
Ora, non sò come funziona netbeans, ma penso non sia molto diverso da eclipse.
NapalM
Saretta89
29-04-2008, 16:14
Hai fatto fare tutto a netbeans o hai generato un jar?
Ti spiego come ragiono io (uso eclipse):
- creo il mio package mio.utils; dove inserisco le classi che voglio
- genero il jar utils.jar
- nel nuovo progetto inserisco come libreria la mia utils.jar e poi posso usare tranquillamente le mie classi in mio.utils; eclipse mi inserisce automaticamente l'import del package che utilizzo
Ora, non sò come funziona netbeans, ma penso non sia molto diverso da eclipse.
NapalM
Ma non è la stessa cosa... Tu in pratica utilizzi una libreria esterna giusto?
che io sappia è possibile usare l'import direttamente, mettendo soltanto
import sara.*;
o sbaglio?
comunque... io i miei progetti non li salvo dove li salva di default, ma in una cartella che ho chiamato "workspace netbeans" magari è per questo che non li trova?
Ma non è la stessa cosa... Tu in pratica utilizzi una libreria esterna giusto?
che io sappia è possibile usare l'import direttamente, mettendo soltanto
import sara.*;
o sbaglio?
comunque... io i miei progetti non li salvo dove li salva di default, ma in una cartella che ho chiamato "workspace netbeans" magari è per questo che non li trova?
Capito.
Penso che tu debba dargli come riferimento allora il progetto, non sò se automaticamente lui veda tutti i progetti del tuo workspace e automaticamente importi i package che trova (credo che la tua domanda sia questa).
Qua c'è bisogno di qualcuno che programmi con netbeans, mi spiace :(
NapalM
nuovoUtente86
30-04-2008, 20:08
molto probabilmente è settato male il classpath!
nuovoUtente86
30-04-2008, 20:15
Per la compilazione/esecuzione devi compilare il tutto dalla cartella root con, per esempio, "javac package_uno\classe_uno.java" e "java package_uno.classe_uno
a livello teorico tutti dicono di compilare cosi ma fecendo una cosa del genere
root_applicazione/package_uno javac classe_uno.java si ottiene in ogni caso la compilazione senza errori( se non si importano altri package presenti nella root e che in tal caso il classpath (valore corrente ".") non vedrebbe.
morskott
30-04-2008, 23:32
quel che non capisco è che problemi ci siano seguendo la procedura che ho descritto...
Secondo me,forse ti conviene realmente passare ad eclipse, fidati. http://www.eclipse.org/
Non ci vuole niente (puoi tranquillamente importare tutti i tuoi progetti),è molto più user-friendly, è estendibile con plugin, suppporta tutti i linguaggi di programmazione di questo mondo, e non è affetto da alcuni bug (intellisense che non funziona, freeze delle finestre) di netbeans con cui anche io ho avuto a che fare 5 minuti fa...:D
nuovoUtente86
01-05-2008, 19:25
quel che non capisco è che problemi ci siano seguendo la procedura che ho descritto...
quello che hai scritto è assolutamente perfetto: la mia era una considerazione generale....quella che viene passata come una regola assoluta in realtà può non essere necessaria in alcuni casi.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.