Zıplanacak içerik

Featured Replies

Gönderi tarihi:

Python İle Java Applet'i Yazmak - (Jython) - Anlatım Linux'a Göre Yapılmış

 

Jython (Pythonun tamamen java ile yazılmış halidir. Python kütüphaneleri yerine java kütüphanelerini kullanmaya imkan tanır)

 

Python ile java, .NET, PE (Portable Executable) programlar oluşturabilirsiniz. Zaten yazdığınız kod hiçbir değişikliğe uğramadan. Linux, Mac ve Windows'ta çalışabilmektedir. Linux ise ARM, SPARC, Intel, AMD, PowerPC gibi bir çok işlemcide çalışabildiğine göre varın gerisini siz düşünün.

 

Python ile yazdığımız uygulamayı nasıl java bytecode'ları ile çalışabilecek hale getirebiliriz?

 

import java.applet.Applet;
import java.awt.Graphics;

public class HelloWorld extends Applet {
public void paint(Graphics g) {
	g.drawString("Hello world!", 50, 25);
}
}

 

Bu tahmin edeceğiniz üzere "merhaba dünya" java applet'imiz Derleme işlemimiz kısaca şöyle (Tabi Java SDK'sının kurulu olması gerekli).

 

$ javac HelloWorld.java
from java.applet import Applet

class HelloWorld(Applet):
def paint(self, g):
	g.drawString("Hello from Jython!", 20, 30)

 

Bu da aynı uygulamanın python eşdeğeri, bir başka ifade ile jython eş değeri. jython'da derleme sonucu .jar arşivleri oluşturuyoruz. Çünkü gereken python dönüştürücüsünün (adapter) arşive eklenmesi gerekmekte.

 

$ jythonc --deep --core --jar HelloWorld.jar HelloWorld.py

 

Eğer programımız applet değilde swing, awt veya console programı olsaydı

 

$ java HelloWorld

 

Şeklinde çalıştırabilirdik. Fakat java bytecode'larına derlenen appletleri html içine gömüp çalıştırabiliriz.

 

<html>
<head></head>
<body>
 Java ile yazılıp javac ile derlenmiş applet:<br>
 <applet code="HelloWorld.class" width="200" height="50"></applet><br>
 Jython ile yazılıp jythonc ile derlenmiş applet:<br>
 <applet code="HelloWorld.class" archive="HelloWorld.jar" width="200" 
  height="50">
 </applet>
</body>
</html>

 

Gömülü html dosyasını

 

$ appletviewer test.html

 

Şeklinde veya doğrudan tarayıcınız ile test.html dosyasına erişerek deneyebilirsiniz. Ancak.... jython kullanıyorsanız kodu derlemeden de deneyebilirsiniz. Bütün python uygulamalarında olduğu gibi. jython tercümanı derlemeye gerek duymaz. Bu nedenle ufak bir kaç ek kod ile derlemeden de jython appletimizi görebiliriz.

 

from java.applet import Applet
import sys

class HelloDirect(Applet):
def paint(self, g):
	g.drawString("Hello from Jython %s!" % sys.version, 20, 30)


if __name__ == '__main__':
import pawt
pawt.test(HelloDirect())

 

Burada __name__ değişkeni __main__ katarına eşitse yani jython betiği doğrudan çalıştırılıyorsa, betik kendi kendini test eder. Normal jython betiklerini çalıştırdığımız gibi betiği deneyebiliriz.

 

$ jython HelloWorld.py

Katılın Görüşlerinizi Paylaşın

Şu anda misafir olarak gönderiyorsunuz. Hesabınız varsa, hesabınızla gönderi paylaşmak için ŞİMDİ OTURUM AÇIN.
Eğer üye değilseniz hemen KAYIT OLUN.
Not: İletiniz gönderilmeden önce bir Moderatör kontrolünden geçirilecektir.

Misafir
Maalesef göndermek istediğiniz içerik izin vermediğimiz terimler içeriyor. Aşağıda belirginleştirdiğimiz terimleri lütfen tekrar düzenleyerek gönderiniz.
Bu başlığa cevap yaz

Önemli Bilgiler

Bu siteyi kullanmaya başladığınız anda kuralları kabul ediyorsunuz Kullanım Koşulu.