Desenvolvimento - Java

Introdução ao Jython

Jython é uma implementação de alto nível do Python escrito 100% em Java. Isso permite que você escreva códigos em Python e os faça rodar dentro de qualquer JVM.

por Fábio Rizzo Matos



Jython é uma implementação de alto nível do Python escrito 100% em Java. Isso permite que você escreva códigos em Python e os faça rodar dentro de qualquer JVM (Java Virtual Machine).

Ele ainda permite que você escreva código Java utilizando recursos do Python, se integrando perfeitamente.

O Jython nada mais é que um arquivo .class do Java. Essa é uma vantagem quando queremos rodar aplicativos Python em lugares onde não existe o Python instalado, somente um JVM e ainda por cima, permite popularizar a distribuição de aplicativos Python.

A página do Jython é http://www.jython.org e é uma excelente fonte de informação.

Agora, vamos instalar o Jython.

Instalando o Jython

Para instalarmos o Jython é necessário ter o JSDK, pois o Jython utiliza o javac para compilar os programas em Python para Java.

O endereço para a instalação esta em:

http://java.sun.com/j2se/1.4.2/download.html

Depois acesse o site do Jython e baixe o Jython-21 que está disponível em:

http://sourceforge.net/project/showfiles.php?group_id=12867&release_id=67726

Você terá em mão um arquivo jython_21.class.

Entre em sua console digite:

$ java jython_21 

(sem colocar no final o .class)

Vai aparecer um wizard pedindo algumas opções, se ele não detectar automaticamente o seu SO, selecione-o na lista, selecione a opção "all" para instalar todos os pacotes e clique em "go" para realizar a instalação.

É uma instalação muito simples, bem nos moldes do Windows, estilo NNF (next, next, finish).

Depois de instalado, basta acessar o o diretório onde foi instalado o seu Jython e executar o comando abaixo no console para iniciar o uso.

$ jython 

Vamos agora criar uma pequena aplicação.

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)

Digite numero inteiro

Figura 1: Digitando primeiro número

Digite numero inteiro 2

Figura 2: Digitando segundo número

Resultado da soma

Figura 3: Resultado da Soma dos números.

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 é?

Conclusão

Como foi visto pelo exemplo anterior, é possível trabalhar com a biblioteca Swing facilmente.

E esse exemplo também pode ser estendido para outras bibliotecas.

Em breve escreverei outros artigos, mais avançados sobre o Jython.

Até mais

Fabio - http://www.fabiorizzo.tk

fabiorizzo@gmail.com

Fábio Rizzo Matos

Fábio Rizzo Matos - Membro ativo da Comunidade Python/Zope e Plone, para qual escreve diversos artigos. Arquiteto de Software e Desenvolvedor, trabalha atualmente na ThreePointsWeb (contato@threepointsweb.com), empresa especializada em desenvolvimento e treinamentos Python, Zope e Plone, realizando treinamentos e consultorias em Plone. Mantenedor do site http://www.fabiorizzo.com além de responsável pela tradução de conteúdo.