PROGRAMLAMA
Would you like to react to this message? Create an account in a few clicks or log in to continue.

JAVA PLUG-IN

Aşağa gitmek

JAVA PLUG-IN Empty JAVA PLUG-IN

Mesaj  Admin Perş. Ağus. 19, 2010 11:19 am

Bundan birkaç yıl önce Sun, HotJava adlı web browserı piyasaya çıkardı. Sun'ın bu web browserı, Java'yı destekliyordu. Buda içine java nesneleri gömülebilen uygulamaların ilk örneğini teşkil ediyordu. Bunun ardından Netscape kendi web browserınada Java desteğini ekledi. Ardından da MS.
Gün geçtikce Java'nın yeni sürümleri çıktı. Bununla birlikte Netscape ve MS kendi ihtiyaçlarına uygun sınıf kütüphanelerini eklediler browserlarına. Böylece her browserın kendine özel JVM ( Java Virtual Machine ) 'i oldu. Dolayısıyla browserların içine gömülen JVM ile browserdan bağımsız olarak JVM 'i güncellemek imkansızdı.
Sun, herhangi bir ortamda Java'nın çalışabilmesi için gerekli olan her şeyi içeren ( Java VM ve sınıf kütüphaneleri ) JRE 'yi çıkardı. Eğer JRE bilgisayarınızda yüklüyse, herhangi bir uygulamaya ( örneğin browser ) gömülmüş java nesneleri çalışabiyor. Sorun, browserların sadece kendi JVM lerine bakmaları ve makinada yüklü olan JRE 'ye ulaşmak için bir mekanizmaya sahip olmamalarıydı. Sun olaya el attı : Java Plug-In
Sun'ın geliştirdiği Java Plug-In, JRE 'ye HTML sayfalarından browserı kullanarak ulaşmak için bir mekanizma. Java Plug-In, Sun'ın web sitesinden bedavaya indirilebiliyor. Sayfaya girildiğinde, istenen java sürümü kullanıcının makinasında yüklü değilse, kullanıcı Java Plug-In sayfasına yönlendirilir. Java Plug-In, Netscape'de plug-in olarak, IE 'de ise ActiveX Control olarak otomatik yüklenir.

Java Plug-In Kullanmak

Java Plug-In, Netscape'de EMBED, IE 'de ise OBJECT tagı sayesinde kullanılabilir. MIME tipi ile istenen java sürümünü belirtmelisiniz. Örneğin Java 1.2 sürümünün özelliklerini kullanan bir appletiniz varsa, MIME tipinde bunu belirterek appletinizin doğru çalışmasını sağlarsınız.
MIME Tipi Nesne Tipi / Sürüm
application/x-java-applet; Applet / Mevcut sürüm
application/x-java-applet;version=1.1 Applet / Java 1.1
application/x-java-applet;version=1.2 Applet / Java 1.2
application/x-java-bean; Bean / Mevcut sürüm
application/x-java-bean;version=1.1 Bean / Java 1.1


HTML sayfasına appletinizi geleneksel yöntemlerle koymak isterseniz, yani Java Plug-In kullanmak istemiyorsanız APPLET tagını kullanmanız gerekir. Java Plug-In kullanmak istiyorsanız;
Netscape için EMBED tagını kullanmalısınız :
<HTML>
<BODY>
<EMBED type="application/x-java-applet;version=1.1" width="200" height="200" code="Appletim.class" codebase="/appletler/" parametre1="2" pluginspage="http://java.sun.com/products/plugin/1.1/plugin-install.html">
<NOEMBED>
Applet Desteklenmiyor
</NOEMBED>
</EMBED>
</BODY>
</HTML>

PLUGINSPAGE ve TYPE alt tagını kullanmanız gerektiğini unutmayınız. Çünkü browser Java Plug-In yükleme sayfasını ve sürümü bilmesi gerekir. APPLET tagında kullanılan PARAM alt tagını bu durumda kullanmazsınız. Parametreleri direkt, örnekte görüldüğü gibi ( parametre1="2") direkt yazmalısınız.CODE, CODEBASE,WIDTH,HEIGHT gibi alt taglar APPLET tagında olduğu gibi kullanılır.
Internet Explorer için OBJECT tagını kullanmalısınız :
<HTML>
<BODY>

<OBJECT classid="clsid:8AD9C840-044E-11D1-B3E9-00805F499D93" width="200" height="200" codebase="http://java.sun.com/products/plugin/
1.1/jinstall-11-win32.cab#Version=1,1,0,0">
<PARAM NAME="code" VALUE="Appletim.class">
<PARAM NAME="codebase" VALUE="/appletler/">
<PARAM NAME="type" VALUE="application/x-java-applet;version=1.1">
<PARAM NAME="parametre1" VALUE="2">
Applet desteklenmiyor

</OBJECT>

</BODY>
</HTML>


Burada CODEBASE alt tagı gömülü nesnenin gerektirdiği ActiveX Controlünün yeridir. Java'ya ait codebase, type, code gibi taglar PARAM alt tagı ile belirtilir.
Netscape ve IE için farklı yöntemlerin kullanılması, her biri için ayrı web sayfalarımız olacağı anlamına gelmiyor. HTML kodu kullanarak her ikisi içinde geçerli bir sayfa hazırlayabilirsiniz. Fakat böyle bir HTML kodu yazmak için kendinizi kasmayın. Çünkü Sun, Java Plug-In ile beraber HTML Çeviricisi ( HTML Converter ) sunuyor. Bu çevirici sayesinde HTML sayfasında kullanılan APPLET tagları her iki browserda da kullanılabilecek şekilde çevriliyor.

Applet Neden Çalışmıyor?
Appletler, dinamik web tabanlı içerik için en ideal programcıklardır. Teorikte bir kere yaz, her bilgisayarda, her browserda ve her işletim sisteminde çalıştır; mantığını ileri süren Sun bunu "Bir kere yaz, her yerde çalıştır ( Run Once, Run Anywhere ) " sloganıyla lanse ediyor.
Pratikte, birçok java programcısı ve birçok kullanıcı Java appletlerinin başağrısına sebep olduğunu söylüyorlar. "Neden applet çalışmıyor ?" içerikli birçok mail geliyor.
Applet çalıştığı zaman tam çalışıyor, çalışmadığı zaman ise büyük bir sorun halini alıyor. Hatayı bulmak ve hatayı düzeltmek gerçekten başağrısına neden olabiliyor. Hatta Java ile program geliştirmeyi bu yüzden bırakanlar bile var. Değişik browserlar, browser sürümlerinin farklılıkları, hatta browser konfigürasyonlarındaki farklılıklar appletlerin çalışmasında rol oynayabiliyor. Browserlara gömülü Java Sanal Makinasındaki ( Java Virtual Machine ) buglar ve bilgisayarın performansıda etkili oluyor.
Şayet browser'ınız hiçbir appleti çalıştıramıyor ise, java applet ihtiva eden bir sayfayı çağırdığınızda takılıp kalıyorsa browser yazılımını tekrar kurmak çoğu zaman problemi ortadan kaldırıyor. Bu söz konusu değilde, gri bir dikdörtgenden başka bir şey göremiyorsanız bunun bir kaç sebebi olabilir.
Neden Gri Dikdörtgen?
Appletin yüklenmesi sırasında veya yüklendikten sonra çalıştırılması sırasında meydana gelen hatalardan dolayı oluşur. Java programlama dilinde bunun teknik adı "Exception" dır. Java'da hataları yakalama imkanı olduğunu biliyoruz, daha doğrusu bilinen çoğu hatayı desek daha iyi olur. Oluşan hatalar bilinmedik, beklenmedik hata veya appletden kaynaklanmayan hatalar olabildiği için bu hataları yakalama imkanı yok. Şimdi en çok karşılaşılan ve bilinen hataları inceleyelim :
Class dosyasına ulaşamama veya yükleyememe
Bilindiği gibi applet dediğimiz programcıklar, derlendikten sonra class dosyası halini alıyorlar. Appletlerin çalışması için bu class dosyalarının yüklenmesi gerekiyor. Şayet class dosyasının yeri bulunamaz veya dosya yüklenirken hata oluşur ise gri kutunun içinde class dosyasını bulunamadığına dair veya yüklenirken hata oluştuğuna dair bir hata mesajı çıkar ve applet çalışmaz. Applet çalışmadığı için, ki hata daha applet yüklenirken oluştuğu için, applet kodu içinden bu hatayı yakalamanız ve engellemeniz mümkün değildir. Bu hata çoğu durumda, <applet> tagı içinde class dosyasının bulunduğu yeri yanlış olarak belirtildiği zaman ortaya çıkıyor.
Ağ kaynaklarına erişememe
Bazı zamanlar ağ üzerinde bulunana server göçer veya herhangi bir sebepten bağlantı kurulamaz. Kullanıcı firewall arkasındadır ve Socket, DatagramSocket istekleri çalışmaz. Eğer ağ kaynaklarına erişim gerektiren bir applet yazıyorsanız, iletişim için TCP/UDP protokülü yerine HTTP protokülünü kullanın. Çünkü firewall arkasında olan kullanıcı sayısı gün geçtikçe artıyor. Karşılaşılan diğer bir hata sebebi ise, browserların appletler ile ilgili kısıtlamalarından kaynaklanıyor.
Appletviewer'da sorunsuz çalışan applet, browserda çalışmıyor. Applet sadece bulunduğu server ile bağlantı kurabilir. Birçok applet ise domain isimlerini IP adresine çevirirken hata oluşturuyorlar. Bunu önlemek için domain ismi yerine IP adresi kullanın.
Null Hataları
Çok karşılaşılan hatalardan biriside NULL hatalarıdır. Bu appletin kodundan kaynaklanan ve appletin çalışmamasını sağlayan bir hatadır. Bir değişkene bir nesne atarken, nesnenin değerinin Null ( değersiz ) olmamasına dikkat edin. Aşağıdaki örneği inceleyin:
Örnek:
String sayac = getParameter ("sayac"); //sayac parametresini al
if ( sayac == null ) // Eğer sayac null ise
sayac = "1"; // sayac değerini "1" yap.

Biraz dikkat ile, web sayfalarında önümüze çıkan gri dikdörgen kutucukları azaltabiliriz.
Admin
Admin
Admin

Mesaj Sayısı : 102
Kayıt tarihi : 18/08/10
Yaş : 35

https://programlama.yetkin-forum.com

Sayfa başına dön Aşağa gitmek

Sayfa başına dön

- Similar topics

 
Bu forumun müsaadesi var:
Bu forumdaki mesajlara cevap veremezsiniz