Konuyu görüntüle
IUCODERS FORUM > Programlama > JAVA > classloader
Yazar
ridaniye


avatar
antalya
Kayıt: 26.04.2006
07.04.2007-21:42 #19543
Arkadaslar benim soyle bir problemim var.

Yazdigim programin kullandigi bir class kullanim aninda degisiyor. Ama JVM de calisan ClassLoader bunu desteklemiyor. java.lang.ClassLoader, bir kere yukledigi classi bir daha yuklemiyor.

Yani:
Class1 c1=new Class1(); //ClassLoader Class1 nesne yapisini JVM ye yukluyor

Class1 c2=new Class1(); //Burada yukleme yapmiyor. Daha evvel yuklemisti cunku.

Eger, bu iki kod arasinda Class1 i degistirip derlerseniz hic birsey degismiyor. Program yeniden baslamadikca yeni halini kullanamiyoruz.

Bir cozum bilen var mi?





Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
08.04.2007-10:51 #19560
new ile oluşturduğun nesne zaten memory ye yerleşir ona birşey yapmazsın.
illa da o nesne üzerinde değişiklik yapmak istiyorsan içindeki verileri static yaparsın.
bütün classlar aynı nesneyi kullanmasını istiyorsan ozaman o classın tek instance oluşturmasını sağlaman lazım. bi ebook upload edicem buraya ilk 1-2 chapterını okursan sorununu halledersin.





N/A
Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
08.04.2007-10:54 #19562
http://www.iucoders.com/ebook/
yarın akşam ebook silinmiş olacak ona göre
james gosling üstadın -kendisi javayı icat eden kişidir- keşke bu kitap 10 sene evvel olaydı da burdan java öğreneydim dediği bir kitaptır. 2001 de basılmış şahane bir kitap javaya yeni başlayan herkese tavsiye ederim.
JVM e bir class yüklediğin zaman class kod tarafından erişilemez duruma gelicen garbage collector tarafından silinir. Eğe rebn dinamik olarak runtime de class yükleyecem onla çalışacam diyorsan. java 1.2 den beri dynamic class loading i destekliyor ama burda sen ne yapmak istiyorsun dah a detaylı anlatman lazım.
class.forName ile dışarıdan bir yerden bir classı çağırabilirsin. ama yapmak istediğin o mu bilmiyorum. http://www.javageeks.com/Papers/ClassForName/index.html





N/A
Yazar
ridaniye


avatar
antalya
Kayıt: 26.04.2006
08.04.2007-12:09 #19566
Orhan hocam, galiba tam anlatamadim :)

Temp kalsoru altinda bir A class i var diyelim. Program kullanildigi esnada kullanicinin istegine gore yeni bir A.java yaziliyor ve derleniyor. Yani A class i tamamen degisiyor.

Ben bu degisen class i kullanmak istiyorum.

Yardimin icin tesekkur ederim.

Ayrica pdf yi indirdim. Cok guzel kitapmis.





Yazar
clairvoyant


avatar
Antalya
Kayıt: 05.05.2006
08.04.2007-12:24 #19568
ebook için teşekkürler :)





Let`s make this world a better place to live !

Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
08.04.2007-13:03 #19570
o zaman belli aralıklarla CLass.forName() yapısını kullanacaksın. Bunu da belli aralıklarla tekrarlayacaksın. Yada uygulamanın classları değiştiği sürece yeniden bunu yukleyeceksin. Java da web uygulamaları bu mantığa örnektir. Tabi bu arada Garbage Collector'u çağırman ve finalize metodlarını kullanman gerekecek ki o classlar hafızadan silinsin.





N/A
Yazar
ridaniye


avatar
antalya
Kayıt: 26.04.2006
08.04.2007-13:58 #19576
Class.forName yapsina bir ornek gosterebilir misin peki?

Hic kullanmadim daha evvel.





Yazar
orhan


avatar
istanbul
admin
Kayıt: 17.11.2005
08.04.2007-14:30 #19578
yukarıda verdiğim linklerde var.





N/A
Del.icio.us
Digg
Facebook
Furl
Google
Blink
Simpy
Spurl
Y! MyWeb