sábado, marzo 08, 2008

python junto con java

Instalamos jyton con el cual podremos programar con python y usar clases de java, jython puede compilar bytcodes dinamicamente y ejecutarlos en la virtual machine, aparte de poder interpretar librerias propias de python. Lo probaremos a través de ejemplos sencillos.

miguel@asakura:~/jython2.2.1$ python
Python 2.5.1 (r251:54863, Oct 5 2007, 13:36:32)
[GCC 4.1.3 20070929 (prerelease) (Ubuntu 4.1.2-16ubuntu2)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> a = ['cat', 'window', 'defenestrate']
>>> for x in a:
... print x, len(x)
...
cat 3
window 6
defenestrate 12
>>>

Un programa muy normal de python (incluso sacado del tutorial de python), pero, y ¿Cómo interacciona con java?

>>> from java.util import Random
>>> r = Random()
>>> r.nextInt()
-371611001
>>>


y que mas podemos hacer.

class Test {
private double $peso;

public void bumper(int bumpMe) {
bumpMe += 15;
}

public void cambiarINT(Integer i) {
i = new Integer(3939);
System.out.println("i vale ahora " + i);
}

public void changer (AlumnoVO al) {
al.y = "prueba";
}
}

Compilamos el archivo y ponemos la clase donde querramos. Sin salirnos de la secion que teniamos de jython

>>> import jreload
>>> X=jreload.makeLoadSet('X',['/home/miguel/src/java/ejemplos/'])
>>> from X import Base
>>>
>>> s=Base()
>>> s.cambiarINT(2)
i vale ahora 3939
>>>

Pues eso, no tuvimos que reiniciar jython para insertarle un path al CLASSPATH, cosa que con java es una molestia, mas si sobreescribes una clase, ya no hay que reinicar.
Publicar un comentario