PDA

View Full Version : Help per Jbuilder


bizzu
07-01-2004, 14:58
Scusate la domanda banale, ma sono al primo progetto in java...
Dunque, ho fatto un'applet in Java; ho 8 classi, ognuna l'ho messa in un file diverso che ha lo stesso nome della classe (dichiarata public). Ho creato un progetto con il Jbuilder 9, ho inserito tutti i file delle classi.
Quando vado a fare "Make Project" mi da un casino di errori del tipo: ""Automezzo.java": cannot resolve symbol: class Sprite in class Automezzo at line 1, column 32". Ora, la classe Sprite esiste, è nella stessa dir, è inclusa nel progetto ed è public in un file "Sprite.java"!! Cosa ho dimenticato? Perché non la trova?
Aiutatemi grazie
:cry:

roby1483
07-01-2004, 18:13
Hai messo il package? JBuilder lo vuole anche se le classi sono tutte nella stessa cartella altrimenti non funziona a meno che tu non lanci l'esecuzione da prompt. Cmq non so se è questo il problema perchè dovrebbe metterlo da se.

bizzu
07-01-2004, 20:54
Si, ho messo il package scrivendo in tutti i file "package <nomepackage>", ma la situazione non cambia...
Forse è un problema di classpath? Nelle variabili d'ambiente di windows ho messo sia la jdk\lib sia la dir del progetto...

roby1483
08-01-2004, 11:40
Non credo che il problema sia nelle variabili d'ambiente, io c'ho messo solamente il percorso di javac per compilare da prompt e funziona tutto.
Hai provato a compilare da prompt?

bizzu
08-01-2004, 13:02
Sì, da prompt funziona e mi da solo gli errori normali, non quelli di "cannot resolve symbol". Però vorrei capire perché con Jbuilder non va, anche perché è comodo potersi scorrere tutti gli errori e trovarli nel codice automaticamente, mentre invece da riga di comando mi devo fare tutto a mano (ed il progetto è corposo...).
Nessuno ha qualche idea?

fgmac
08-01-2004, 14:09
Come hai inserito i file nel progetto di jbuilder?

La struttura delle directory per un progetto jbuilder deve seguire questo schema:

definisco root la directory dove e' stato creato il progetto (newprj.jpx)

a partire da root ci dovrebbero essere le dir (questo e' il default che si aspetta jbuilder, ma che puoi cambiare nel pannello delle proprieta' del progetto):

bak
classes
doc
src

All'interno della cartella src devono essere messi i sorgenti, ma devono essere messi nelle cartelle definite come package.
A questo punto puoi anche non inserire a mano i file nel progetto, li tira su jbuilder.

Spero di essere stato abbastanza chiaro e di aver centrato il problema.

bizzu
08-01-2004, 17:54
Le cartelle bak e src non c'erano, i file delle mie classi erano in una cartella diversa da quella del progetto (le avevo "inserite" con "Add files/packages/classes..."). Allora le ho create e ho copiato tutti i file sia in classes sia in src, ma il problema rimane...

fgmac
09-01-2004, 12:33
Nella dir src ci deve essere la cartella <tuo package> e li' dentro i file sorgente.
Nella cartella classes ci saranno le classi compilate da jbuilder (mi ero dimenticato di dirlo).

In jbuilder dovresti vedere delle icone (pacchetit regalo) che rappresentano i package e ritrovarti i tuoi file sorgente, altrimenti c'e' qulacosa che non va.

Se non funziona ti mando un piccolo progettino funzionante in jbuilder per vedere la struttura.

bizzu
09-01-2004, 21:14
Grande! Adesso funziona!!
Ho messo tutto in src/<nomepackage>, ho avviato jbuilder e me le riconosceva dentro al "pacchetto regalo"... Poi è bastato rimuovere i file vecchi e la compilazione adesso funziona. :D :D
Adesso rimane solo da far funzionare il programma...:rolleyes: :sofico: :D
Grazie 1000

fgmac
10-01-2004, 18:22
Ottimo!!! :D :D :D :D
Jbuilder è veramente funzionale, scoprirai ben presto di riuscire a scrivere il codice molto velocemente.

bizzu
11-01-2004, 12:09
Approfitto per chiederti un'altra cosa...
Una volta compilate le classi col Jbuilder, voglio provare l'applet con appletviewer (cioè scrivo "appletviewer <nomefile>.html), e la cosa non funziona (mi dice "Avvio: applet non inizializzato"), mentre se faccio partire l'applet da jbuilder almeno qualcosa vedo. Il dubbio è: avendo messo le classi in un package, devo anche metterle in una directory <nomepackage>, mettere il file html fuori e aggiungere il tag CODEBASE? Ho l'impressione che appletviewer non riesca a trovare le classi...
Non so se sono stato spiegato :p

fgmac
12-01-2004, 09:38
Purtroppo non conosco l'applettviewer e non so bene come aiutarti. :rolleyes:
Immagino che sia un problema di visibilita' delle classi. Tieni conto che la dir classes di jbuilder viene ricostruita con tutte le cartelle/package al momento della compilazione.
Inoltre per l'utilizzo finale dovresti impacchettare tutto in un file jar.

bizzu
13-01-2004, 11:48
Capito. Grazie mille per l'aiuto! :)