Jump to content

Python İle Java Applet'i Yazmak - (Jython)


Muallim-i Ali

Recommended Posts

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.java
from java.applet import Applet

class 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 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())[/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

Archived

This topic is now archived and is closed to further replies.

  • Recently Browsing   0 members

    No registered users viewing this page.

×
×
  • Create New...