|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Oct 2002
Città: Roma
Messaggi: 1502
|
AIUTO URGENTE!!! Importare packages in java
Salve a tutti.
Sto raggruppando vari file di un'applicazione in dei package, ma le cose non mi funzionano... Vorrei allora chiedere a chi ne sa di più alcune cose su come posizionare i packages e chi può fare l'import di che cosa. Supponiamo di avere due sottodirectory uno e due di una cartella C: ...........C ........./...\ .......uno.due uno contiene file con dichiarazione di package 'package uno;' e due contiene file con dichiarazione di package 'package due;'. Se nei file della cartella uno includo l'istruzione 'import due.*' il compilatore dice di non trovare il package due. Ho visto che le uniche volte in cui il package due è trovato è quando la cartella che lo contiene è una sottocartella di uno, ovvero dovrei avere una struttura di sottopackage: ........C ......../ ......uno ......./ .....due Ma stanno proprio cosi le cose? Cioè è questo l'unico caso in cui l'import funziona? O c'è qualche altro problema? Centra qcosa col classpath? (dal file autoexec.bat: SET PATH=C:\Programmi\jdk1.2.2\bin;%PATH%). Il fatto è che anche cosi le cose non funzionano, come ho provato col seguente esempio. Supponiamo di voler definire un pakage b e un sottopackage c. Ho creato la directory a con un file one.java: ////////file a/one.java///////////// import b.*; public class one{ .......public static void main(String[] args){ ................one o = new one(); ................o.executeOne(); } .........public void executeOne(){ .................System.out.println("one"); .................two t = new two(); ..................t.executeTwo(); ..........} } ////////////////////////////////////// nella directory a ho creato la directory b con un file two.java: /////////////////file a/b/two.java//////////////////// package b; import b.c.*; public class two{ ..........public void executeTwo(){ ......................System.out.println("two"); ......................three o = new three(); ......................o.executeThree(); ...........} } //////////////////////////// nella directory b ho creato la directory c con un file three.java: /////////////////file a/b/c/three.java//////////////////// package b.c; public class three{ .............public void executeThree(){ .......................System.out.println("three"); ..............} } //////////////////////////// Se compilo three.java va tutto bene, ma quando compilo two.java ho l'errore: Package b.c not found in import: import b.c*; Per riuscire a compilare ho visto che in a/b/c/three.java devo sosituire la dichiarazione di package 'package b.c;' con 'package c;' e allo stesso tempo sostituire in a/b/two.java 'import b.c*' con 'import c.*'. Così le cose funzionano...almeno fino alla compilazione. Se provo ad esegurie one.java dalla directory a ho come otput: one two java.lang.NoClassDefFoundError: c/three Questo è quanto...spero di aver descritto bene il problema e soprattutto spero che qualcuno mi sappia dare una soluzione...è da stamattina che ci sto lottando..e sono le 4 di notte...tra l'altro tra due giorni devo consegnare il programma! Grazie a tutti, ciao! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
Il claaaaaassssspathhhhhhhhhh!!!!!!!
Che non centra nulla col PATH! MA all'università non ve le insegnano ste cose??? Deve puntare alla directory padre di tutti i packages |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 19:40.



















