Domande frequenti su JDT

È possibile utilizzare un compilatore Java diverso da quello incorporato (ad esempio javac) nel workbench?

No. Il JDT fornisce una serie di sofisticate funzioni inclusa una completa ricompilazione incrementale automatica, la valutazione di frammenti di codice, l'assistente al codice, gerarchie dei tipi e sostituzione del codice attivo. Tali funzioni richiedono il supporto speciale offerto dal compilatore del workbench Java (parte integrante del generatore incrementale di progetto del JDT), non disponibile nei compilatori Java standard.

Da dove provengono i pacchetti Java?

Un progetto contiene esclusivamente file e cartelle. La nozione di pacchetto Java viene introdotta mediante il percorso classi di un progetto Java (nell'interfaccia utente, la vista Esplora pacchetti presenta i pacchetti come definiti dal percorso classi). Suggerimento: se la struttura del pacchetto non è quella prevista, controllare il percorso classi. L'infrastruttura di ricerca Java rileva dichiarazioni e riferimenti di elementi Java solo sul percorso classi.

Quando utilizzare un file di librerie JAR interno o esterno?

Una risorsa interna risiede in un progetto del workbench e viene quindi gestita dal workbench; come per altre risorse, il workbench può gestire le versioni di tali risorse interne. Una risorsa esterna non fa parte del workbench e può essere utilizzata solo per riferimento. Ad esempio, un JRE è spesso esterno e molto grande, e non è necessario associarlo ad un sistema VCM.

Quando è opportuno utilizzare cartelle di origine all'interno di un progetto Java?

Ciascun progetto Java localizza i propri file di origine Java mediante una o più voci di tipo di origine sul percorso classi del progetto. Utilizzare cartelle di origine per organizzare in gruppi i pacchetti di un progetto esteso o per conservare il codice origine separato da altri file dello stesso progetto. Inoltre, utilizzare le cartelle di origine se sono presenti file (ad esempio, la documentazione) che non è necessario inserire nel percorso di generazione.

Cosa sono i collegamenti origine e come se ne definisce uno?

Le librerie sono memorizzate come file JAR contenenti file di classe binari (e probabilmente altre risorse). Tali file di classe binari forniscono informazioni di convalida su pacchetti, classi, metodi e campi. Queste informazioni sono sufficienti per la compilazione o l'esecuzione, ma sono molto meno complete rispetto al codice origine originale. Per rendere più semplice l'esame e il debug di librerie binarie, esiste un meccanismo per associare un file origine JAR (o ZIP) corrispondente a un file JAR binario.

Perché tutte le risorse vengono duplicate nella cartella di output (ad esempio bin)?

Se il proprio progetto Java utilizza cartelle di origine, nel corso della compilazione dei file di origine del progetto, il compilatore Java copia risorse non Java nella cartella di output in modo che saranno disponibili sul percorso classi del programma in esecuzione. Per evitare che determinate risorse vengano copiate nel percorso di output, è possibile impostare un filtro delle risorse nelle preferenze del compilatore Java: Finestra > Preferenze > Java > Compilatore > Generazione

Come impedire che i file della documentazione vengano copiati nella cartella di output del progetto?

Utilizzare cartelle di origine e inserire tutte le risorse che non si desidera copiare nella cartella di output in una cartella separata che non sia inclusa nel percorso classi. Il filtro delle risorse può essere impostato nelle preferenze del compilatore Java: Finestra > Preferenze > Java > Compilatore > Generazione ad esempio come *.doc.

Come si crea un pacchetto predefinito?

Non è necessario farlo. I file nella cartella principale di una cartella di origine o di un progetto sono considerati come inseriti nel pacchetto predefinito. In effetti, ogni cartella di origine ha la capacità di contenere un frammento del pacchetto predefinito.

Cos'è il refactoring?

Il refactoring effettua trasformazioni del programma conservandone il comportamento. JDT supporta una serie di trasformazioni descritte nella pubblicazione di Martin Fowler Refactoring: Improving the Design of Existing Code, Addison Wesley 1999.

Quando si utilizza la selezione codice/risoluzione codice (F3)?

Per localizzare l'elemento Java che corrisponde a un intervallo di codice origine con l'aiuto del compilatore.

Le informazioni sul programma Java (ad esempio gerarchia di tipo, dichiarazioni, riferimenti) vengono prodotte dal generatore Java? Tali informazioni vengono aggiornate anche quando la funzione di generazione automatica è disattivata?

Le informazioni sul programma Java sono indipendenti dal generatore Java. Esse vengono automaticamente aggiornate quando si effettuano modifiche di risorse o operazioni Java. In particolare, tutte le funzionalità offerte dalla strumentazione Java (ad esempio le gerarchie dei tipi, l'Assistente al codice, la ricerca) continueranno ad essere perfettamente eseguite quando la funzione di generazione automatica è disattivata. Ad esempio, quando si effettua un refactoring che richiede la disattivazione dei generatori, è ancora possibile utilizzare l'Assistente al codice, che rifletterà le ultime modifiche apportate (non ancora sottoposte a generazione). Per le operazioni diverse dall'avvio di programmi (ossia esecuzione e debug), la sola funzionalità che richiede il generatore Java è la valutazione di frammenti di codice.

Dopo la riapertura di un workbench, la prima generazione che si verifica dopo la modifica di un file di origine Java sembra impiegare molto tempo. Perché?

Quando il workbench viene chiuso, il generatore incrementale di progetto Java salva il proprio stato interno in un file. Alla prima generazione dopo la riapertura del progetto, il generatore incrementale di progetto Java ripristinerà il proprio stato interno. Quando il file è molto grande, si può verificare un ritardo inusuale durante la generazione.

Non è possibile visualizzare la gerarchia dei tipi per una classe. Cosa fare?

Verificare che il proprio percorso classi di generazione sia impostato in modo corretto. L'impostazione del percorso classi di generazione corretto rappresenta un'importante attività durante lo sviluppo Java. Senza il percorso di generazione corretto, non sarà possibile compilare il codice. Inoltre, non sarà possibile effettuare la ricerca o l'esame delle gerarchie dei tipi per gli elementi Java.

Come si disattiva la "compilazione automatica" per eseguirla manualmente?

Deselezionare la casella di controllo Finestra > Preferenze > Generale > Spazio di lavoro > Generazione automatica. Quando si desidera eseguire la creazione, premere Ctrl+B oppure scegliere Progetto > Genera tutto dalla barra dei menu.

Suggerimento: quando si disattiva la "compilazione automatica" e si esegue la generazione manualmente, è possibile selezionare la casella Finestra > Preferenze > Generale > Spazio di lavoro > Salva automaticamente prima della generazione.

Quando si seleziona un metodo o un campo nella vista Struttura, nell'editor viene visualizzata solo l'origine di quell'elemento. Come si visualizza l'origine dell'intero file?

Sulla barra degli strumenti si trova un pulsante Mostra solo origine dell'elemento selezionato - tutto ciò che occorre fare è deselezionarlo.

È possibile nidificare le cartelle di origine?

Sì, per creare cartelle di origine nidificate possono essere utilizzati i filtri di esclusione.

Possono esserci cartelle di output diverse per ciascuna cartella di origine?

Sì, basta selezionare la casella di controllo Consenti cartelle di output per le cartelle di origine nella pagina delle proprietà Percorso di generazione Java > Origine del progetto Java.

Una cartella di origine o di output può trovarsi al di fuori dello spazio di lavoro?

Sì, è possibile creare una cartella collegata che faccia riferimento al percorso desiderato e utilizzare quella cartella come cartella di origine o di output nel progetto Java.

Argomenti correlati

JDT (Java development tools)

Riferimenti correlati

Pagina del percorso di generazione Java
Glossario JDT