Java Applet на PythonСреда, Апрель 21, 2010 г. В наших руках инструмент обладающий мощью Java и гибкостью, лаконичностью Python. Возможность использование в Python скриптах Java библиотек, например таких как Swing. Возможность компиляции скриптов в Java *.class, для последующего использования в Java проектах. Не буду далее углубляться в различные сферы применения данной реализации. В контексте одного поста вряд ли можно достойно охватить все аспекты. Поэтому остановимся на тематике заявленной в заголовке - Java Applet на Python. Сам по себе Python к сожалению не умеет выполняться браузером в рамках html страницы. Это конечно не в коем случае не стоит считать недостатком. Но всё таки лично я (и думаю не только я) был бы рад такой возможности. Может быть в далёком будущем Python заполнит эту нишу, но пока что мы попробуем обойтись с помощью Jython. Попробуем создать примитивный апплет выводящий приветственное сообщение с сегодняшней датой. Назовём файл app.py.
from java.applet import Applet
import time
class app(Applet):
def paint(self, g):
today = time.strftime('%d.%m.%Y')
g.drawString("Hello, today - %s!" % today, 20, 30)
В данном примере мы импортируем Java класс Applet, он необходим для работы самого апплета и Python библиотеку time для определения даты. Этого вполне достаточно для простого примера. Теперь скомпилируем наш код в app.jar.
demoriz [~]% jythonc --core --deep --all --jar app.jar app.py
Warning: jythonc is unmaintained and will not be included in Jython-2.3. See http://jython.org/Project/jythonc.html for alternatives to jythonc. Add '-i' to your invocation of jythonc to turn off this warning
processing app
Required packages:
java.applet
Creating adapters:
Creating .java files:
app module
app extends java.applet.Applet
Compiling .java to .class...
Compiling with args: ['/opt/sun-jdk-1.6.0.19/bin/javac', '-classpath', '/usr/share/jython/lib/jython.jar:/usr/share/libreadline-java/lib/libreadline-java.jar:./jpywork::/usr/share/jython/tools/jythonc:/usr/share/jython/Lib:__classpath__', './jpywork/app.java']
0 Note: ./jpywork/app.java uses or overrides a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
Building archive: app.jar
Tracking java dependencies:
org.python.modules.time.Time
org.python.modules.time.TimeFunctions
org.python.modules.time.PyTimeTuple
org.python.modules.time.PyTimeTuple$1exposed___ne__
org.python.modules.time.PyTimeTuple$1exposed___reduce__
org.python.modules.time.PyTimeTuple$1exposed___eq__
org.python.modules.time.PyTimeTuple$1
Полученный app.jar загрузим на сервер и вставим в html. <applet code="app" archive="app.jar" width = 100 height = 50 alt="This browser doesn't support JDK applets."> </applet> А вот и наш апплет, если же конечно у вас установлена Java машина ;) иначе вы увидите содержимое параметра alt "This browser doesn't support JDK applets.": Всё просто, не правда ли? Для желающих поковырять вот используемый мной в данном примере app.jar. | ||
Оставить коментарий
)
