Pakowanie programu Jython w wykonywalnym słoiku

Próbuję spakować program jython do wykonywalnego pliku jar, który użytkownik może po prostu dwukrotnie kliknąć, aby uruchomić bez wcześniejszej instalacji jythona. Ostatecznie chciałbym dołączyć dodatkową bibliotekę, którą napisałem ze słoikiem, ale w tej chwili próbuję spakować prosty program i uruchomić go ze słoika.

Próbowałem śledzić instrukcje jar w sekcji „Używanie metody jar” tutaj:Jython FAQ: Używanie metody Jar

Spojrzałem także na slajdy 25-28 tutaj:Slajdy Jython Update 2012

I wreszcie tutaj:stackoverflow Pytanie: Dystrybucja skryptów My Python jako Jars z Jythonem

Zainstalowałem jython 2.5.3, jvm 1.6 i python 2.7.3 na moim komputerze Mac z systemem OS X 10.8.3.

Oto kroki, przez które przechodzę, aby utworzyć słoik i uruchomić go:

Utwórz kopię pliku jython.jar z mojego katalogu instalacyjnego jython.zip -r jython_copy.jar Lib (gdzie Lib jest folderem w katalogu instalacyjnym jython)cp myJythonProgram.py __run__.py (myJythonProgram.py nie zawiera „if”imię ==Główny' linia)zip jython_copy.jar __run__.pyexport CLASSPATH=/path/to/my/app/jython_copy.jar:$CLASSPATH

Próbowałem uruchomić jar używając wszystkich trzech tych metod:

java org.python.util.jython -jar myapp.jarjava -cp myapp.jar org.python.util.jython -jar myapp.jarjava -jar myapp.jar -jar myapp.jar

Działa to, jeśli mój program nie używa żadnych instrukcji importu.

Jednak uruchamiam problem, w którym niektóre pakiety Pythona nie mogą zostać znalezione podczas uruchamiania słoika. Na przykład pojawia się błąd „ImportError: Brak modułu o nazwie losowej”, gdy dołączam linięfrom random import random w moim programie. Podczas importowania z javax.swing, java.awt, time lub math nie występują błędy w liniach programu.

Ponadto próbowałem spakować jar z moją biblioteką i programem jython, który importuje moją bibliotekę przy użyciu poprzednich kroków, a także następujące dodatkowe kroki:

zip jython_copy.jar myLibrary.jarjar ufm jython_copy.jar othermanifest.mf

othermanifest.mf zawiera tylko linięClass-Path: ./myLibrary.jar.

To również daje błąd „ImportError: Brak modułu o nazwie myLibrary”

Byłbym wdzięczny za wgląd w to, co robię nieprawidłowo lub inne kroki, które powinienem podjąć.

Dzięki!

questionAnswers(2)

yourAnswerToTheQuestion