Uruchamianie programu Java z użyciem Pythona

Na potrzeby jednego z projektów na uczelni chciałem sprawdzić, jakie możliwości udostępnia GUI pakietu JDMP. Nie lubię jednak Javy i nie chciało mi się w niej pisać nawet króciutkiego programiku. Postanowiłem, że zamiast tego po raz pierwszy spróbuję Jythona.

Jython, następca JPythona, jest implementacją Pythona w Javie i, co w tym przypadku najważniejsze, pozwala posługiwać się klasami Javy przez skrypty Pythona (a także z użyciem trybu interaktywnego!).

Po zainstalowaniu Jythona warto nadać odpowiednie uprawnienia dla katalogu cache’a. W moim przypadku było to:

# /opt/jython/jython
# chmod -R a+rw /opt/jython/cachedir/

Dzięki temu unikniemy komunikatów takich jak poniższy:

*sys-package-mgr*: can't write index file

Poza tym cache powinien odrobinę przyspieszyć pracę Jythona, a przynajmniej tak mi się wydaje ;)

Wracając do meritum: skrypt wywołujący funkcję main() interesującej mnie klasy wygląda bardzo prosto. Wystarczy dodać do ścieżki systemowej plik JAR i zaimportować klasę.

W moim przypadku funkcja main() wywołana bez argumentów zgłosiła błąd, więc szybko dopisałem coś, co powinno z grubsza symulować wywołanie z konsoli.

#!/usr/bin/env /opt/jython/jython
 
import sys
sys.path.append("jdmp.jar")
import org.jdmp.gui.JDMP
 
org.jdmp.gui.JDMP.main(["test","-g"])

PS Domyślam się, że pewnie jest prosty sposób na uruchomienie tej funkcji za pomocą Javy, ale znalezienie takiego rozwiązania zajęłoby mi pewnie tyle samo, co napisanie powyższego skryptu.

Komentarzy: 1 do „Uruchamianie programu Java z użyciem Pythona“

  1. Włodzimierz komentuje:

    W moim przypadku nie działa to rozwiązanie
    # /opt/jython/jython
    # chmod -R a+rw /opt/jython/cachedir/

    Ma ktoś jakiś pomysł?

Dodawanie komentarzy

XHTML: Możesz używać tagów: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">