Упаковка программы Jython в исполняемую флягу

Я пытаюсь упаковать программу jython в исполняемый файл jar, который пользователь может просто дважды щелкнуть, чтобы запустить без предварительной установки jython. В конечном итоге я хотел бы добавить дополнительную библиотеку, которую я написал с помощью jar, но в данный момент я просто пытаюсь упаковать простую программу и запустить ее из jar.

Я пытался следовать инструкциям в банке "Используя метод Jar " раздел здесь:Часто задаваемые вопросы по Jython: использование метода Jar

Я также посмотрел на слайды 25-28 здесь:Слайды Jython Update 2012

И наконец здесь:stackoverflow Вопрос: Распространение моих скриптов Python в виде JAR-файлов с помощью Jython

Я установил jython 2.5.3, jvm 1.6 и python 2.7.3 на мой Mac под управлением OS X 10.8.3.

Вот шаги, которые я прошел, чтобы создать банку и запустить ее:

Создайте копию jython.jar из моего установочного каталога jython.zip -r jython_copy.jar Lib (где Lib - папка в каталоге установки jython)cp myJythonProgram.py __run__.py (myJythonProgram.py не содержит 'еслиназвание ==главный' линия)zip jython_copy.jar __run__.pyexport CLASSPATH=/path/to/my/app/jython_copy.jar:$CLASSPATH

Я попытался запустить банку, используя все три метода:

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

Это работает, если моя программа неиспользовать любые операторы импорта.

Однако я сталкиваюсь с проблемой, когда некоторые пакеты python не могут быть найдены при запуске jar. Например, я получаю ошибкуImportError: нет модуля с именем random когда я включаю строкуfrom random import random в моей программе. При импорте из javax.swing, java.awt, time или math ошибок в строках программы не возникает.

Кроме того, я попытался упаковать jar с моей библиотекой и jython-программой, которая импортирует мою библиотеку, используя предыдущие шаги, а также следующие дополнительные шаги:

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

othermanifest.mf содержит только строку.Class-Path: ./myLibrary.jar

Это тоже дает ошибкуОшибка импорта: нет модуля с именем myLibrary "

Я был бы признателен за понимание того, что я делаю неправильно, или других шагов, которые я должен предпринять.

Спасибо!

Ответы на вопрос(2)

Ваш ответ на вопрос