Veelgestelde vragen over JDT

Kan ik een ander Java-compileerprogramma (bijvoorbeeld javac) gebruiken in plaats van het compileerprogramma van de workbench?

Nee. JDT bevat een aantal geavanceerde voorzieningen, waaronder volledig automatische incrementele hercompilatie, codesnippet-evaluatie, codehulp, typehiërarchieën en warme codevervanging. Deze voorzieningen worden wel ondersteund door het Java-compileerprogramma van de workbench (een integraal onderdeel van het incrementele buildprogramma van JDT), maar niet door standaard Java-compileerprogramma's.

Waar komen Java-pakketten vandaan?

Een project bevat alleen bestanden en mappen. Het begrip 'Java-pakket' verwijst naar het klassenpad van een Java-project (in de gebruikersinterface worden pakketten in de Pakketverkenner weergegeven naar hun klassenpad). Tip: als de pakketstructuur niet overeenkomt met uw verwachtingen, dient u het klassenpad te controleren. De Java-zoekinfrastructuur functioneert alleen voor declaraties en verwijzingen van Java-elementen in het klassenpad.

Moet ik een intern of een extern JAR-bibliotheekbestand gebruiken?

Een interne resource bevindt zich in een project in de workbench en wordt derhalve ook beheerd via de workbench. Net zoals bij andere resources, kunnen via de workbench verschillende versies van deze resources worden beheerd. Een externe resource maakt geen deel uit van de workbench en kunnen slechts ter referentie worden gebruikt. Een JRE is vaak extern en erg groot, en hoeft niet te worden gekoppeld aan een VCM-systeem.

Wanneer moet ik in een Java-project bronmappen gebruiken?

Elk Java-project 'vindt' zijn Java-bronbestanden via een of meer brontypevermeldingen in het klassenpad van het project. U gebruikt bronmappen om de pakketten van een groot project onder te verdelen in groepen of om broncode gescheiden te houden van andere bestanden in hetzelfde project. U kunt bronmappen ook gebruiken voor bestanden (documentatie, bijvoorbeeld) die niet in het buildpad opgenomen hoeven te worden.

Wat zijn bronbijlagen en definieer ik ze?

Bibliotheken worden opgeslagen als JAR-bestanden met binaire klassenbestanden (en/of andere resources). Deze binaire klassenbestanden bevatten handtekeninggegevens voor pakketten, klassen, methoden en velden. Deze informatie volstaat om code te compileren of uit te voeren, maar bevat veel minder informatie dan de oorspronkelijke broncode. Om het gemakkelijker te maken om in binaire bibliotheken te bladeren en fouten op te sporen, is er een mechanisme om een JAR-bronbestand (of ZIP-bronbestand) te koppelen aan een binair JAR-bestand.

Waarom worden al mijn resources gedupliceerd in de uitvoermap (bin, bijvoorbeeld)?

Als u voor uw Java-project gebruikmaakt van bronmappen, worden bij het compileren van de bronbestanden van het project ook niet-Java-resources naar de uitvoermap gekopieerd zodat deze beschikbaar zijn in het klassenpad van het programma dat wordt uitgevoerd. Als u wilt voorkomen dat bepaalde resources naar de uitvoerlocatie worden gekopieerd, kunt u een resourcefilter instellen in de voorkeuren voor het Java-compileerprogramma: Venster > Voorkeuren > Java > Compileerprogramma > Bouwen.

Hoe voorkom ik dat mijn documentatiebestanden naar de uitvoermap van het project worden gekopieerd?

Gebruik bronmappen en plaats alle resources die niet naar de uitvoermap gekopieerd mogen worden, in een aparte map die niet in het klassenpad is opgenomen. U kunt ook een resourcefilter instellen in de voorkeuren voor het Java-compileerprogramma: Venster > Voorkeuren > Java > Compileerprogramma > Bouwen (bijvoorbeeld *.doc).

Hoe maak ik een standaardpakket?

Dat is niet nodig. Bestanden in de hoofdmap van een bronmap of project worden beschouwd als het standaardpakket. In feite kan elke bronmap een fragment van het standaardpakket bevatten.

Wat is herstructureren?

Herstructureren is het transformeren van een programma zonder het gedrag ervan aan te tasten. Diverse transformaties die door JDT worden ondersteund, worden beschreven in dit boek van Martin Fowler: Refactoring: Improving the Design of Existing Code (Herstructuring: de architectuur van bestaande code verbeteren), uitgeverij Addison Wesley, 1999.

Wanneer gebruik ik codeselectie/code-omzetting (F3)?

Als u met behulp van het compileerprogramma wilt zoeken naar het Java-element dat overeenkomt met een bepaald bronbereik.

Worden de Java-programmagegevens (zoals typehiërarchieën, declaraties, verwijzingen) geproduceerd door de Java-builder? Worden deze bijgewerkt wanneer automatisch bouwen is uitgeschakeld?

De Java-programmagegevens zijn niet afhankelijk van de Java-builder. Deze worden automatisch bijgewerkt wanneer u resources wijzigt of Java-bewerkingen uitvoert. Met name alle functionaliteit van de Java-tools (zoals typehiërarchieën, codehulp, zoeken) verandert niet wanneer Auto-build uitgeschakeld is. Ook als u grote structuurwijzigingen uitvoert waarvoor de builders moeten worden uitgeschakeld, kunt u nog steeds de codehulp gebruiken. De codehulp weerspiegelt altijd de laatste wijzigingen (ook als deze nog niet in de build zijn doorgevoerd). Buiten het starten van programma's (het uitvoeren van en fouten opsporen in programma's) is de Java-builder verder alleen vereist voor het evalueren van codefragmenten.

Na het opnieuw openen van de workbench lijkt het maken van de eerste build na het bewerken van een Java-bronbestand erg lang te duren. Hoe kan dat?

De interne status van een bestand wordt opgeslagen bij het afsluiten van de workbench. Bij het maken van de eerste build nadat het project opnieuw is geopend, wordt de interne status door het incrementele Java-projectbuildprogramma hersteld. Wanneer het een groot bestand betreft, ervaart de gebruiker dit als een ongebruikelijke vertraging.

Waarom zie ik geen typehiërarchie voor mijn klasse? Hoe kan ik dit oplossen?

Controleer of het buildklassenpad correct is ingesteld. Bij het ontwikkelen van Java-programma's is het van groot belang dat u het buildklassenpad correct instelt. Zonder het juiste buildpad kunt u de code niet compileren. Bovendien kunt u dan de typehiërarchieën voor Java-elementen niet doorzoeken of bekijken.

Hoe schakel ik de automatische compileerfunctie uit als ik iets handmatig wil compileren?

Deselecteer het vakje Automatisch bouwen op de voorkeurenpagina Voorkeurenpagina Werkgebied openen Algemeen > Werkgebied. Druk op Ctrl+B of klik op Project > Alles bouwen op de menubalk om het buildproces handmatig uit te voeren.

Hint: als u "Automatisch bouwen" uitschakelt om handmatig te bouwen, kunt u ook het vakje Automatisch opslaan vóór bouwen op de voorkeurenpagina Voorkeurenpagina Werkgebied openen Algemeen > Werkgebied.

Wanneer ik een methode of veld in de view Overzicht selecteer, wordt alleen de bron voor dat element afgebeeld in de editor. Hoe krijg ik de bron van het hele bestand te zien?

Klik (nogmaals) op de werkbalkknop Alleen bron van geselecteerd element weergeven om deze functie uit te schakelen.

Kan ik bronmappen nesten?

Ja, u kunt uitsluitingsfilters gebruiken om geneste bronmappen te maken.

Kan ik verschillende uitvoermappen voor elke bronmap definiëren?

Ja. Hiertoe moet u het selectievakje Uitvoermappen voor bronmappen toestaan inschakelen op de eigenschappenpagina van uw Java-project (Java-buildpad > Bron).

Kan ik een uitvoer- of bronmap buiten het werkgebied opgeven?

Ja, u kunt een gekoppelde map maken die verwijst naar de gewenste locatie, en die map gebruiken als bron- of uitvoermap in uw Java-project.

Verwante concepten

JDT (Java Development Tools)

Verwante onderwerpen

De pagina Java-buildpad
Verklarende woordenlijst voor JDT