MyApplication-shell i MyApplication-compile skriptovima, takođe pogledajte i sledeće fajlove:. project,. classpath , and MyApplication.launch, koji se nalaze u Vašem trenutnom direktorijumu (tj. fascikli).
se retko koristi. CLASSPATH varijabli (properti: java.class.path). On se takođe koristi za lociranje ulazne tačke u klasi (metod main ()), ali i
Mechanism). Pošto Bootstrap class loader nalazi sistemske biblioteke, novije verzije istih koje su navedene u CLASSPATH-u biće ignorisane, jer se već učitane. Pomenuta funkcionalnost omogućava da se ipak koriste novje verzije nekih
ovog mehanizma, pošto je ovako moguće koristiti klase i arhive koje su dodate na putanje za pretragu (na pr. CLASSPATH ) nakon inicijalizacije sistema (programa).
nađena, zahtev se delegira Javinim class loaderima, CLASSPATH putanji,
pitanja, pa će kasnije biti objašnjena sa više detalja. CLASSPATH-u , već u pomenutom posebnom folderu, sa promenjenom ekstenzijom. Kod koji koristi FooClassLoader je jednostavan:
folderu, sa promenjenom ekstenzijom. Kod koji koristi FooClassLoader je jednostavan: CLASSPATH-u , FooClassLoader će potražiti fajl ' Ext1.klasa ' u posebnom folderu i odatle učitati klasu. Poslednji red ovog isečka
FooClassLoader koji ih delegira Javinim class loaderima. Učitavanje je uspešno jer se sve zahtevane klase nalaze na CLASSPATH-u .
klasa Ext1 iz prethodnog primera istovetna kao i kada bi bila kreirana na standardni način, kao i svaka klasa koje je na CLASSPATH-u (na pr. Ext2). Ipak, razlika postoji: klase se nalaze u različitim namespace-ovima Svaka klasa ' pamti ' referencu na
) postaje neupotrebljiv, jer class loader pozivajuće klase može biti izolovan i da ne vidi klasu koja je regularno na CLASSPATH-u . Ovo je bio jedan od razloga zašto Java2 donosi proširenja koja se tiču dinamičkog učitavanja klasa. Sledi njihov opis
je njime učitana klasa Ext1. Zato na konzoli postoji ispis "load class: Misc ". Misc klasa se u ovom primeru nalazi na CLASSPATH-u , pa FooClassLoader može da je učita, jer delegira zahtev Javinim class loaderima. Međutim, da je FooClassLoader bio
FooClassLoader bio implementiran drugačije i da nije delegirao zahtev, Ext1 ne bi mogao da učita klasu Misc iako je na CLASSPATH-u ¶
kastovanja dobar, nema mesta zabuni. Kastovanje se radi u glavnom programu, pa se kastovanje vrši u klasu Ext koja je na CLASSPATH-u , dok clazz.newInstance () vraća instancu klase Ext koju je učitao FooClassLoader iz posebnog foldera. Ovde se, dakle
foldera. Ovde se, dakle, razlikuju dve Ext klase: jedna koje je učitana Javinim class loaderima i koja se nalazi na CLASSPATH-u , i druga koju je učitao FooClassLoader iz posebnog foldera koji nije na CLASSPATH-u. Kako su zato u pitanju različite
class loaderima i koja se nalazi na CLASSPATH-u, i druga koju je učitao FooClassLoader iz posebnog foldera koji nije na CLASSPATH-u . Kako su zato u pitanju različite klase, kastovanje ne može da uspe.