Muallim-i Ali Posted October 25, 2007 Share Posted October 25, 2007 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); }}[/CODE]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).[CODE]$ javac HelloWorld.javafrom java.applet import Appletclass HelloWorld(Applet): def paint(self, g): g.drawString("Hello from Jython!", 20, 30)[/CODE]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.[CODE]$ jythonc --deep --core --jar HelloWorld.jar HelloWorld.py[/CODE]Eğer programımız applet değilde swing, awt veya console programı olsaydı[CODE]$ java HelloWorld[/CODE]Şeklinde çalıştırabilirdik. Fakat java bytecode'larına derlenen appletleri html içine gömüp çalıştırabiliriz.[CODE]<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>[/CODE]Gömülü html dosyasını[CODE]$ appletviewer test.html[/CODE]Ş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.[CODE]from java.applet import Appletimport sysclass HelloDirect(Applet): def paint(self, g): g.drawString("Hello from Jython %s!" % sys.version, 20, 30)if __name__ == '__main__': import pawt pawt.test(HelloDirect())[/CODE]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.[CODE]$ jython HelloWorld.py[/CODE] Link to comment Share on other sites More sharing options...
Recommended Posts
Archived
This topic is now archived and is closed to further replies.