Introdução ao Jython

Neste artigo iremos aprender como usar o extraordinário Jython, o resultado da união do Python com o Java.

[ Hits: 46.804 ]

Por: Fabio Rizzo Matos em 28/09/2004 | Blog: http://www.vindula.com.br


Criando uma simples aplicação



Vamos criar uma aplicação que acessa a biblioteca swing do Java. Este programa soma dois números inteiros.

Crie um arquivo chamado soma.py. Dentro desse arquivo digite o seguinte código:

import javax.swing as libswing

pnumero = libswing.JOptionPane.showInputDialog("Digite um Numero Inteiro: ")
snumero = libswing.JOptionPane.showInputDialog("Digite um Numero Inteiro: ")

soma = int(pnumero) + int(snumero)

libswing.JOptionPane.showMessageDialog(None, "A soma eh %d " % soma)

Salve o código acima e rode:

$ jython soma.py

(contando que o jython esteja no PATH de sua máquina ou o soma.py esteja dentro do diretório do Jython)






Explicando o código:

import javax.swing as libswing

Importa a biblioteca do Java.

pnumero = libswing.JOptionPane.showInputDialog("Digite um Numero Inteiro: ")

Mostra a primeira caixa de diálogo e armazena o valor na variável pnumero.

snumero = libswing.JOptionPane.showInputDialog("Digite um Numero Inteiro: ")

Mostra a segunda caixa de diálogo e armazena o valor na variável snumero.

soma = int(pnumero) + int(snumero)

Converte os valores de pnumero e snumero para inteiros e soma os dois armazenando o resultado na variável soma.

libswing.JOptionPane.showMessageDialog(None, "A soma eh %d " % soma)

Mostra na tela o resultado da soma.

Simples não é?

Página anterior     Próxima página

Páginas do artigo
   1. O que é Jython
   2. Instalando o Jython
   3. Criando uma simples aplicação
   4. Conclusão
Outros artigos deste autor

Introdução ao Python (parte 1)

Gerenciando registros em banco de dados com Zope

ZPT - Zope Pages Templates

Instalando o MySQL no Zope/Plone e criando uma pequena aplicação

Utilizando as bibliotecas do Java usando o Jython

Leitura recomendada

Extensões imperdíveis para quem usa o Git (e o GitHub) no Brackets

Servidor LAMP no Linux Mint e Ubuntu

JavaScript - Programação orientada a objetos

Manual de XHTML

Automação de tarefas com Gulp

  
Comentários
[1] Comentário enviado por batista em 28/09/2004 - 15:06h

Bem legal este tal de Jython,certamente ele deve ter acesso nativo a banco de dados(Mysql,Postgres,etc..)

[2] Comentário enviado por fabrizmat em 28/09/2004 - 15:29h

vc pode tanto utilizar o acesso nativo do jdbc quanto utilizar as bibliotecas do python para fazer o acesso. Vc que escolhe!

[3] Comentário enviado por jose_maria em 28/09/2004 - 23:10h

Cara que legal!
Eu vou testar isso! Eu estava realmente procurando conhecer mais sobre Python. Usar Python com swing é bem legal porque a api swing é muito flexível e muito boa de trabalhar.
Parabéns!

[4] Comentário enviado por fabrizmat em 29/09/2004 - 08:27h

E não so de swing ele vive! Todas as bibliotecas do java trabalham numa boa com o jython! Boa sorte!

[5] Comentário enviado por Czuber em 29/09/2004 - 10:48h

Gostei da novidade! Mas eu tenho uma dúvida: e quanto ao desempenho? Vc sabe como ele funciona? Quando é compilado gera .class do java e o Jython serve só como uma "interface" nova para a sintaxe ou ele cria um .class diferente do que seria escrito somente em Java?

[6] Comentário enviado por fabrizmat em 29/09/2004 - 11:23h

Ele Gera um arquivo .class tambem! Tente assim:

jythonc nomedoarquivo.py

Ele vai criar um arquivo assim:

nomedoarquivo.class

[7] Comentário enviado por jchaves13 em 30/09/2004 - 13:15h

Ao tentar executar obtive o erro abaixo:
[johnny@cpd python]$ java jython_21
Exception in thread "main" java.lang.NoClassDefFoundError: jython_21
Versão do java:
[johnny@cpd python]$ java -version
java version "1.4.2_05"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2_05-b04)
Java HotSpot(TM) Client VM (build 1.4.2_05-b04, mixed mode)
[johnny@cpd python]$

Como sou analfabeto em java, gostaria de alguma luz.

[8] Comentário enviado por fabrizmat em 30/09/2004 - 13:35h

Talvez seja necessário setar o seu classpath, tente fazer isso abaixo:

env CLASSPATH=. java jython-21

java -cp . jython-21

java -classpath . jython-21

jview /cp:. jython-21


[9] Comentário enviado por jchaves13 em 30/09/2004 - 14:52h

Com
java -cp . jython-21
e
java -classpath . jython-21
Funcionou, após isso copiei o jython-21.class para o local apontado por CLASSPATH, e roda direto, provavelmente poderei apagar após instalar, farei alguns testes.
O jview não existe no meu sistema :(.
Muito obrigado, parabéns.


[10] Comentário enviado por Hernando em 03/05/2005 - 13:00h

Gostei não o conhecia antes... vou tentar aplicar bibliotecas assim como foi dito

[11] Comentário enviado por rickobranco em 15/02/2006 - 16:24h

Gostei muito do jython.
Você não teria um apostila ou um tutorial mais completo de jython, pois se tiver adoraria dar uma olhada pois estou realmente interessado na linguagem.
Obrigado!!!

[12] Comentário enviado por takiom em 06/03/2007 - 19:27h

Parabens pelo artigo, mto bom!

[13] Comentário enviado por leandro_hamid em 19/10/2007 - 23:47h

Gostei muito do artigo, achei muito interesante já que estou me iniciando em python e tenho um certo conhecimento de Java mas eu tive um probleminha com a instrução import, quando executei o arquivo soma.py foi exibida a seguinte mensagem de erro:

import javax.swing as libswing
ImportError: No module named javax.swing

O que pode ter acontecido?

Forte abraço.

[14] Comentário enviado por enki em 06/12/2009 - 12:42h

Simples e flexível, gostei, embora não gostar muito de java. Fabio vc tá de parabéns kra, muito legal a iniciativa, tinha ouvido falar antes por um professor meu sobre o Jython, mas nunca tinha testado. Mas eu creio que no quesito desempenho Jython não seja uma boa pedida, pelo fato de embarcar uma linguagem interpretada em outra. Me corrijam se eu estiver errado.
Abraços.

[15] Comentário enviado por nukelinux em 10/01/2010 - 08:51h

muito bom artigo

tenho uma dúvida:
se eu faço dessa forma, o código roda:
jython testejython.py

tentei compilar com o jythonc
jythonc testejython.py

ele criou uma pasta com o arquivo .java e o .class do codigo...
não sei se isso foi ignorância minha, mas tentei compilar esse .java
e consegui um erro...rs
tentei rodar o .class como java nativo
java testejython

e ele me deu esse erro:

debian:/home/leandro/jpywork# java testejython
Exception in thread "main" java.lang.NoClassDefFoundError: org/python/core/PyObject
Caused by: java.lang.ClassNotFoundException: org.python.core.PyObject
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:252)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
Could not find the main class: testejython. Program will exit.

quando comecei a aprender jython (ha pouco tempo), achei que poderia simplesmente gerar o .class e usar no pc, necessitando apenas da jvm para rodar, mas pelo visto vou precisar do python e do jython tbm???

pretendo desenvolver meu TCC em jython, por isso a minha dúvida. Afinal, vou ter que instalar python, jython e java na maquina do cliente pro código poder funcionar? ou existe uma maneira mais simples?

valeu...

[16] Comentário enviado por lucaspolo em 17/01/2010 - 13:41h

Também tive esse mesmo problema acima, ainda não consegui encontrar a solução... Alguém ai tem uma luz?


Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts