Newsgroup: it.comp.java
Titolo: [newbie] Come ricompilare un sorgente?

Salve a tutti,
i tempi in cui sviluppacchiavo sotto java oramai si perdono nella notte 
dei tempi, esattamente come la mia memoria.
Ora ho l'esigenza di modificare il sorgente di un applet java trovato in 
giro.
Mi son scaricato l'ultimo sdk, netbean 5 (figata) e ho creato un 
progetto, ho importato il codice esistente e le librerie corrette etc..
Riesco a compilarlo e tutto ma mi da sempre errore in una serie di righe.
Il problema, di quanto ho capito è che faccio partire il progetto dalla 
directory errata.
Il sorgente è formato come
[root]
    |
    -[dir1]
       |
       -[dir2]
           |
           -applet.java
           -[sottodir1]
           -[sottodir2]
E ovviamente nel codice ci sono delle inclusioni del tipo 
dir1.dir2.sottodir.
Come diamine faccio a importarlo correttamente in un progetto di netbean 
o a compilarlo anche da linea di comando (oramai l'ho già bello che 
modificato)?
Grazie mille a tutti.

se lo compili da linea di comando come penso sai devi usare javac 
specificandogli anche il classpath se usi package non presenti dentro la sdk
che errore ti da comunque?
ma dentro netbeans ti compila? mi sembra che dici di si, ma poi dici che ti 
dà errore... che errore? 

Casper ha scritto:

Ciao!
Grazie mille per la risposta!
Allora si mi ricordavo come compilare da linea di comando...ma ho 
preferito farlo da un IDE (tanto per avere la pappa pronta...del resto 
ho poco tempo per sviluppare sta cosa ed è piuttosto personale)
Compilo correttamente il tutto.
Solo che quando richiamo l'esecuzione della applet, questa evidentemente 
lancia un'altra classe in cui è stato costruito con un factory pattern, 
un inizializzatore di classi -> qui genera un errore.
Di quel poco che ho letto nel codice, questo sostanzialmente esegue una 
reflection interna per vedere nel package quali classi ci sono e poi le 
richiama (loadClass) a seconda dei parametri passati attraverso il factory.
Dall'errore riportato sembra che non riesca a caricare queste classi:
caricamento: classe jupload2/JUploadApplet.class non trovata.
java.lang.ClassNotFoundException: jupload2.JUploadApplet.class
         at 
sun.applet.AppletClassLoader.findClass(AppletClassLoader.java:183)
         at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
Questo se importo il sorgente partendo dalla rott del progetto (wjhk).
Riporto una delle direttive del package per capirci: package wjhk.jupload2
Se invece importo il sorgente partendo dalla directory che contiene 
wjhk, tutto ok ma non parte proprio l'applet...nella console mi scrive 
solo "null"...
Purtroppo non ho neanche capito come eseguire il debugging attaccando a 
quale processo netbean?!
Sospetto che il problema sia dal fatto che compilo male e non ricrea il 
"path" giusto del namespace.
Il progetto cmq è il seguente (se ci vuoi dare un occhio è pure 
interessante):
http://sourceforge.net/projects/jupload/
In pratica per customizzarlo puoi creare un tuo "UploadPolicy": io ci ho 
voluto aggiungere la lettura di alcuni parametri da spedire via post e 
la possibilità di richiamare un javascript quando finisce l'upload.
Si tratta di un applet che permette la selezione e l'upload di 
molteplici file (comodo per ovviare al noioso "input file").
Grazie mille ancora!

 "path" giusto del namespace.
se stai usando l'IDE dovrebbe dirti lui se hai errori di compilazione....
Poichè tu non ne hai, la compilazione è a posto.
L'errore lo dà a runtime, quindi qualche libreria che gli serve a runtime e 
che non hai messo nel classpath quando lanci l'esecuzione da netbeans.
di piu non saprei aiutarti, buon lavoro :)

Casper ha scritto:

Azz ti ringrazio per la risposta!
Le librerie gliele ho "linkate" tutte (gli serviva il plugin.jar per i 
javascript).
Compilato funziona.
E poi poff non funzia..non ho ancora capito perché SIGH.
Proverò a fare altre 2 3 prove poi lo butto :P
Grazie intanto!