Linux JAVA-NASIL Görkem Çetin , e077245@orca.cc.metu.edu.tr v1.0 1.11.1996 1. Giriş Bu döküman , Linux altında Java ve HotJava'nın çalıştırılmasını anlatmaktadır. 2. Java ve HotJava Hakkında çokça sorulan sorular Bu bölümde Java ve HotJava hakkında yanıtlanmayı bekleyen genel sorular vardır. 2.1 Java ve HotJava nedir ve neden bu kadar popüler olmuşlardır ? Java, yapısı C++ 'a benzeyen ve ağ üzerinde konumlandırılan bir dildir. Yapısal olarak C++ 'dan daha basit ve dinamik bir dildir. Güçlü ağ güvenlik özelliklerinin yanısıra gerçek çokgörevlilik işlemlerini de destekler. Ayrıca platformdan bağımsız bir yapıda olmasıyla diğer programlama dillerine karşı belirgin bir üstünlük sağlar. Tüm bu özellikler ve dizayn aşamasındaki yenilikleriyle Java, genel amaçlı bir uygulama dili olma yolundadır. HotJava ise Java dilinde yazılmış olan bir tarayıcı (browser) 'dır. Bu programın benzerlerinden üstünlüğü ise istemci makinada çalışan Java apletlerini tanıyabilmesidir. Bu sayede Java ile yazılmış ve bir HTML dosyasına sadece metin değil , animasyon ve hareket de kolayca eklenebilir. Java çalışmadan önce J-kodu denilen bir komutlar zincirine çevrilir. Java yorumlayan programlar ise J-kodu'nu doğrudan çalıştırırlar. Bu kodun içerdiği yapının ileride dünya çapında standart hale gelmesi mümkündür. 2.2 Java ve HotJava hakkında dökümanları nereden bulabilirim ? Yurt dışındaki ftp sitelerine örnek olarak : · http://java.sun.com · http://java.blackdown.org · http://www.gamelan.com · http://www.applets.com verilebilir. Yukarıdaki adreslerden aynı zamanda Java apletleri ve kaynak kodları da alınabilir. Türkiye içinde ise · http://compclup.ceng.metu.edu.tr/pub/java adresinde konu ile ilgili ayrıntılı bilgiler vardır. Yazılı basım olarak "Java in 21 Days" ve "Java in a Nutshell" önerilebilir. 3. Linux üzerinde Java Aşağıda Linux üzerinde Java'nın kurulmasının püf noktaları anlatılacaktır. 3.1 Linux için Java sürümünü almak istiyorum. Nelere ihtiyacım var ? Java'yı Linux üzerinde kurabilmek için linux.jdk-1.0-try1.common.tar.gz dosyasına ve aşağıdaki dosyalardan birine ihtiyaç vardır. linux.jdk-1.0-try3.shared-motif-bin.tar.gz linux.jdk-1.0-try3.static-motif-bin.tar.gz Eğer elinizde "motif shared library" varsa ilk dosyayı, yoksa ikinci dosyayı almalısınız. 3.2 Java'yı hangi ortamda çalıştırabilirim ? Öncelikle, Linux'unuz ELF tabanlı olmalıdır. Java'nın a.out desteği yoktur, zaten ELF'in a.out üzerindeki yapısal hız farkından dolayı gelecekte de uzak bir ihtimal olarak görüküyor. Kernel'ın en az 1.2.13 sürümü şarttır. Bunların dışında şu dosya değişikliklerine de ihtiyacınız olacaktır. · libc.so.5 => /lib/libc.so.5.2.18 · libX11.so.6 => /usr/X11/lib/libX11.so.6.0 · libXt.so.6 => /usr/X11/lib/libXt.so.6.0 · libXext.so.6 => /usr/X11/lib/libXext.so.6.0 · libXpm.so.4 => /usr/X11/lib/libXpm.so.4.3 · libdl.so.1 => /lib/libdl.so.1.7.9 Yukarıdaki kütüphaneleri içeren libc-5.2.18.tar.gz dosyasını · ftp://ftp.metu.edu.tr:/pub/linux/tsx/packages/GCC adresinden temin edebilirsiniz. ld.so kütüphanesinin (diğer tanımı ile libld.so.1.7.*) ld.so.1.7.9 ile ld.so.1.7.11 sürümü ve sonrası Java için yeterlidir. ld.so.1.7.10'un altındaki kütüphaneler için (ld.so.1.7.9 hariç) güncelleme gereklidir. Bu kütüphanenin son sürümünü yukarıda verilen adresten alınabilir. Xpm kütüphanesi (libXpm.3.4f-ELF.tar.gz) ise · ftp://ftp.metu.edu.tr:/pub/linux/sunsite/X adresinde bulunabilir. 3.3 Java için Netscape'e ihtiyacım var mı ? Linux üzerinde HotJava çıkıncaya dek, evet. Netscape'in 2.0b3 sürümü ve sonrası içinde Java bulunan HTML dökümanlarını tanıyabilmektedir. Netscape çalıştırmadan önce gözönünde bulundurulması gereken bazı noktalar vardır. CLASSPATH değişkeninin , Netscape çalıştırılmadan önce tanımlı olmaması gereklidir. Aksi takdirde çökmeler olabilir. 3.4 Linux-Java'nın tartışıldığı listeler ve haber grupları var mıdır ? · Java-linux listesi: linux-java-request@java.blackdown.org listesine "subject" kısmında "subscribe" kelimesi yazan bir e-posta atılarak üye olunur. · Java-linux-announce listesi : Bu listeye üye olmak için "subject" kısmında "subscribe" yazan bir e-postayı java-linux-announce-request@java.blackdown.org adresine göndermek yeterlidir. · java-l listesi : Türkçe ve İngilizce olan bu listeye üye olmak için listserv@bimel.com.tr adresine mesaj kısmında "subscribe java-l" yazılı bir e-posta gönderin. · comp.lang.java listesi : ODTÜ haber sunucusu tarafından arşivi tutulmaktadır. 4. Linux üzerinde Java kurulumu Bu bölüm, Linux'un Java dilini desteklemesini sağlamak amacıyla izlenmesi gereken yolları gösterecektir. 4.1 Slackware dağıtımı için Sırasıyla aşağıdaki işlemleri uygulayın: · linux-x86.jdk.static-motif.tar.gz dosyasını alın ve açın · libc.5.2.18.bin.tar.gz kütüphanesini alın ve /lib altına açın. /lib/libc.so.5 kütüphanesinden bu dosyaya bağlantı yapın: ln -s /lib/libc.so.5.2.18 /lib/libc.so.5 · ld-so.1.7.14.tar.gz dosyasını alın ve açın. Ardından içinden çıkan "instldso.sh" dosyasını çalıştırın. Şimdi herhangi bir Java programını derleyip çalıştırabilirsiniz. 5. Java apletlerini görüntüleme Java uygulamaları görmek için aşağıdaki komutu ana Java dizini altından girin (çoğu sistemde /usr/local/java) bin/java sun.applet.AppletViewer demo//exampleN.html Yukarıdaki "dizin_ismi" yerine uygun olan bir dizini yerleştirin. N, uygulama sırasını gösteriyor. Bunun için de uygun bir sayı verin. Appletviewer, Java apletlerini görüntüleyen dosyadır. Parametre olarak içinde APPLET belirteci olan bir HTML dosyası alır. Örnek olarak bir HTML dosyası oluşturalım: örnek program Aplet görüntüleme programı için örnek program: Komut satırında "appletviewer Hello.html" yazarak apletin çıktısı görülür. Appletviewer komutunun dezavantajı, Netscape programından çok daha yavaş çalışmasıdır. İlk çalıştırma anında telif hakkından bahseden bir pencere ekranda görünür. 5.1 Son ipuçları · Çalıştırmak istediğiniz tüm *.class dosyalarının çalıştırma bitini (execute bit) 1 yapmalısınız. $ chmod 755 dosya.class · Eğer Java uygulamalarını /usr/local/java/classes/* dizini altından çalıştırmayacaksanız, CLASSPATH çevre değişkenini tanımlamanız gereklidir. · Linux kernalınızı ya Java desteği katacak şekilde derleyin, ya da Java desteğini modül olarak hazırlayın. Modül olarak hazırlamışsanız insmod veya kerneld ile önceden derlediğiniz kernala ekleyin 6. Diğer Java Kaynakları · http://www.parnasse.com/java.shtml , http://cirrus.sprl.umich.edu/javaweather : Java programlamcıları için püf noktalar, ipuçları · http://www.city-net.com/~krom/java-faq.html : Java Çokça Sorulan Sorular · http://substance.blackdown.org/java-linux.html : Genel Linux-Java Sayfası