категории | RSS

Jython - это язык программирования 100% Pure Java. Он позволяет полностью перевести исходный код языка Python в байт-код Java, и запустить полученный байт-код на любой Java Virtual Machine. Это совершенно незаметная и плавная интеграция с Java. Из Python вы можете получить доступ ко всем библиотекам Java, строить приложения, интегрироваться с Java bean и разбивать на подклассы Python классы Java, и наоборот. Аналогично языку Python и в отличие от Java, Jython может использоваться интерактивно; просто наберите некий код на JPython в строке приглашения и вы немедленно увидите результаты.

В более простых терминах, Jython позволяет вам составить скрипт для любого нужного вам Java-кода, переходящий при этом в код, который по количеству строк меньше исходного в два-десять раз. Поскольку Python является языком, с димамической типизацией, вы, к тому же, можете разрабатывать приложения быстрее и с меньшим количеством ошибок, получая в результате более гибкую программу. Jython можно получить на https://www.jython.org/.

Jyhon содержит несколько элементов:

* jython, интерпретатор Jython.
* jythonc, перекомпилирующий программу на Jython в файлы классов Java. Полученные в результате файлы классов Java могут использоваться как любые другие файлы классов Java, например, как апплеты, сервлеты или beans.
* Набор модулей, обеспечивающий пользователей Jython подавляющим большинством модулей из стандартной библиотеки Python.
* Несколько программ, демонстрирующих различные аспекты программирования на Jython.
Доступ к библиотекам Java

Рассмотрим программу ButtonDemo.py.
import java
from pawt import swing

def exit(e): java.lang.System.exit(0)

frame = swing.JFrame('Swing Example', visible=1)
button = swing.JButton('Close Me!', actionPerformed=exit)
frame.setDefaultCloseOperation(3)
frame.contentPane.add(button)
frame.pack()
Эта простая программа демонстрирует, насколько просто создавать программы на Jython, использующие библиотеку компонентов Swing. Первая строка импортирует пакет java, необходимый нам для вызова java.lang.System.exit(). Вторая строка импортирует Java-пакет swing (модуль pawt вычисляет точное местонахождение Swing, который может находиться в javax.swing или, возможно, в com.sun.java.swing). Четвертая строка создает рамку JFrame, присваивая ее свойству visible значение "истина". Пятая строка создает кнопку JButton с меткой и определяет, какая функция должна вызываться при нажатии этой кнопки. Шестая строка вызывает метод setDefaultCloseOperation, который указывает, что следует делать при закрытии ока(3 эквивалентно EXIT_ON_CLOSE). И наконец, последние две строки помещают кнопку JButton в рамку JFrame и делают это все видимым.

Для того чтобы упростить использование библиотек Java, Jython выполняет большой объем работы незаметно для пользователямя. Например, когда Jython импортирует пакет Java, он активно исследует соответствующий пакет, и затем, используя Java Reflection API, находит содержимое пакетов и подписи классов и методов. Кроме того, Jython "на лету" конвертирует между собой типы Python и Java. В ButtonDemo.py, например, текст кнопки ('This is a Swinging example!') представляет собой строку Python. Перед вызовом конструктора для JButton, Jython находит наиболее подходящий конструктор (например, отклоняя версию, принимающую Icon в качестве первого аргумента), и автоматически конвертирует строковый объект Python в строковый объект Java. Более сложные механизмы позволяют конструктору JButton принимать ключевой параметр actionPerformed=exit. Такой стиль невозможен в Java, поскольку Java не имеет возможности манипулировать функциями (или методами) как объектами первого класса. Jython исключает необходимость создания класса ActionListener с единственным методом actionPerformed, хотя при желании вы можете использовать более многословную форму.

DimonVideo
2007-10-12T21:16:18Z

Здесь находятся
всего 0. За сутки здесь было 0 человек

Комментарии 19

#19   fompahaha    

нормально качаю радуюсь "неверный файл java" спасибо разрабам все норм ок просто..


0 ответить

#19   vast2    

Значит можно получить jar, jad файли для телефонов?


* редактировал(а) vast2 20:35 10 янв 2010

0 ответить

#19   Samuil_M    

2 Wolverine,
>>Ерунда smile как MIDlet Pascal. Всю яву надо писать на j2me и не забивать себе голову ерундой
Согласен, но пусть те кто не сильны в яве попробуют, может и получится что нибудь собрать.


0 ответить

#19   Wolverine    

Ерунда smile как MIDlet Pascal. Всю яву надо писать на j2me и не забивать себе голову ерундой


0 ответить

#19   Ignorru    

Каков вес?


0 ответить

#19   _ALBERT_    

Я так понял на мобиле не пойдут полученные ява.


0 ответить

#19   inlanger    

сферу применения уж программисты найдёт сами. вот кто бы взялся...


0 ответить

#19   atrant    

прикольно =) а сферу применения бы. Как я понял, плюс - в использовании библиотек явы. Которых просто больше или что? =)


0 ответить

#19   MVM506123    

я так понял что можно компилить питон и запускать на яве машине. но там свои библиотеки....


0 ответить

#19   On_Samiy    

А вот можно ли ява-приложение на Питон перевести?


0 ответить

Яндекс.Метрика