L'auto-hosting è un'attività in cui un programma i computer viene utilizzato per creare nuove versioni dello stesso programma. L'auto-hosting è molto frequente nello sviluppo dei compilatori, in cui nuove versioni del compilatore vengono scritte nella lingua di destinazione del compilatore e in cui la compilazione fa parte della verifica. In Eclipse, l'auto-hosting fa riferimento all'utilizzo di Eclipse per lo sviluppo di plug-inEclipse. In effetti si tratta di una delle funzioni principali del PDE e quando si utilizza il PDE si svolgono realmente attività di auto-hosting.
Il PDE supporta due stili distinti di auto-hosting. Entrambi presentano vantaggi e svantaggi e sono destinati a diversi scenari di utilizzo. La differenza tra i vari tipi è nella modalità di gestione delle dipendenze dei plug-in.
L'auto-hosting semplice (autonomo) utilizza plug-in esterni per la risoluzione dei riferimenti dei plug-in. È semplice da gestire e comprendere ed è sicuramente adatto agli sviluppatori autonomi che non utilizzano repository remoti per condividere con altri il proprio codice.
L'auto-hosting dei progetti binari introduce un'ulteriore operazioni in cui i plug-in esterni vengono importati nello spazio di lavoro come progetti binari. Non è possibile modificarli e sono generalmente nascosti utilizzando un filtro del progetto binario in Esplora pacchetti.
Come nuova funzione della versione 2.1, il PDE offre uno stile aggiuntivo che rappresenta più che altro una combinazione di auto-hosting semplice e dei progetti binari. In questo modo, un contenitore del percorso classi fornito dal JDT viene utilizzato per rappresentare le voci per i plug-in dipendenti. Le voci vengono elaborate dinamicamente a seconda della situazione corrente nella piattaforma. Se un plug-in a cui viene fatto riferimento viene trovato all'esterno, il riferimento verrà risolto come JAR esterni. Se il plug-in viene rilevato nello spazio di lavoro, si risolverà nel riferimento del progetto. Le modifiche nello spazio di lavoro influenzano automaticamente il percorso classi nel contenitore. Infine, dal momento che le voci vengono elaborate in base alle esigenze (non codificate e memorizzate), le modifiche nella piattaforma di destinazione non creano percorsi classi non aggiornati e/o fragili.