我正在尝试将jython程序打包到一个可执行jar中,用户只需双击即可运行而无需提前安装jython.最后,我想包含一个我用jar编写的附加库,但是目前我只是尝试打包一个简单的程序并让它从jar运行.
我已经尝试按照"使用Jar方法"部分中的jar说明进行操作:Jython FAQ:使用Jar方法
我还在这里看了25-28幻灯片:Jython Update 2012幻灯片
最后在这里: stackoverflow问题:使用Jython将我的Python脚本分发为Jars
我在运行OS X 10.8.3的mac上安装了jython 2.5.3,jvm 1.6和python 2.7.3.
这些是我创建jar并运行它的步骤:
zip -r jython_copy.jar Lib (其中Lib是jython安装目录中的文件夹)cp myJythonProgram.py __run__.py(myJythonProgram.py不包含'if name == main '行)zip jython_copy.jar __run__.pyexport CLASSPATH=/path/to/my/app/jython_copy.jar:$CLASSPATH我尝试使用以下三种方法运行jar:
java org.python.util.jython -jar myapp.jarjava -cp myapp.jar org.python.util.jython -jar myapp.jarjava -jar myapp.jar -jar myapp.jar如果我的程序不使用任何import语句,则此方法有效.
但是我遇到了一个问题,当我运行jar时无法找到一些python包.例如,当我from random import random在程序中包含该行时,我收到错误"ImportError:No module called random" .从javax.swing,java.awt,time或math导入时,程序中的行不会发生错误.
另外,我尝试用我的库和一个jython程序打包一个jar,它使用前面的步骤导入我的库以及以下附加步骤:
zip jython_copy.jar myLibrary.jarjar ufm jython_copy.jar othermanifest.mfothermanifest.mf只包含该行Class-Path: ./myLibrary.jar.
这也给出了错误"ImportError:No module named myLibrary"
如果我对错误或我应该采取的其他步骤有所了解,我将不胜感激. …