Язык программирования Python.

Java.

Документация по Jython (это реализация Python на Java–платформе) отмечает, что Jython обладает следующими неоспоримыми преимуществами над другими языками, использующими Java–байт-код:

• Jython–код динамически компилирует байт-коды Java, хотя возможна и статическая компиляция, что позволяет писать апплеты, сервлеты и т.п.;

• Поддерживает объектно–ориентированную модель Java, в том числе, возможность наследовать от абстрактных Java–классов;

• Jython является реализацией Python — языка с практичным синтаксисом, обладающего большой выразительностью, что позволяет сократить сроки разработки приложений в разы.

Правда, имеются и некоторые ограничения по сравнению с «обычным» Python. Например, Java не поддерживает множественного наследования, поэтому в некоторых версиях Jython нельзя наследовать классы от нескольких Java–классов (в тоже время, множественное наследование поддерживается для Python–классов).

Следующий пример (файл lines.py) показывает полную интеграцию Java–классов с интерпретатором Python:

# Импортируются модули из Java.

From java.lang import System.

From java.awt import *

# А это модуль из Jython.

Import random.

# Класс для рисования линий на рисунке.

Class Lines(Canvas):

 # Реализация метода paint().

 def paint(self, g):

  X, Y = self.getSize().width, self.getSize().height.

  label.setText("%s x %s" % (X, Y)).

  for i in range(100):

   x1, y1 = random.randint(1, X), random.randint(1, Y).

   x2, y2 = random.randint(1, X), random.randint(1, Y).

   g.drawLine(x1, y1, x2, y2).

# Метки, кнопки и т.п.

Panel = Panel(layout=BorderLayout()).

Label = Label("Size", Label.RIGHT).

Panel.add(label, "North").

Button = Button("QUIT", actionPerformed=lambda e: System.exit(0)).

Panel.add(button, "South").

Lines = Lines().

Panel.add(lines, 'Center').

# Запуск панели в окне.

Import pawt.

Pawt.test(panel, size=(240, 240)).

Программы на Jython можно компилировать в Java и собирать в jar–архивы. Для создания jar–архива на основе модуля (или пакета) можно применить команду jythonc, которая входит в комплект Jython. Из командной строки это можно сделать примерно так:

Jуthоnс–d–c–j lns.jar lines.py.

Для запуска приложения достаточно запустить lines из командной строки:

Java–classpath "$CLASSPATH" lines.

В переменной $CLASSPATH должны быть пути к архивам lns.jar и jython.jar.