|
From: Konrad H. <kon...@fa...> - 2011-05-13 07:54:03
|
I am trying to package some of my own Python modules in a jar file. Ideally I'd use a separate jar file, but judging from the various discussions I found on this topic, the only solution seems to be to add my Python modules to the Lib directory in the standalong jar file for Jython. The instructions I follow are here: http://wiki.python.org/jython/JythonFaq/DistributingJythonScripts (under "Using the Jar method"). The problem I have with this is that it doesn't work: ~/test/jython $ ls lib foo.py ~/test/jython $ cp ../../jars/jython-2.5.2.jar jython-with-lib.jar ~/test/jython $ jar uf jython-with-lib.jar lib ~/test/jython $ jar tf jython-with-lib.jar | grep foo lib/foo.py ~/test/jython $ mv jython-with-lib.jar clean-dir ~/test/jython $ cd clean-dir ~/test/jython/clean-dir $ java -jar jython-with-lib.jar *sys-package-mgr*: processing new jar, '/Users/hinsen/test/jython/ clean-dir/jython-with-lib.jar' *sys-package-mgr*: processing new jar, '/Library/Java/ JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents/Classes/classes.jar' *sys-package-mgr*: processing new jar, '/System/Library/Frameworks/ JavaVM.framework/Versions/A/Frameworks/JavaRuntimeSupport.framework/ Versions/A/Resources/Java/JavaRuntimeSupport.jar' *sys-package-mgr*: processing new jar, '/Library/Java/ JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents/Classes/ui.jar' *sys-package-mgr*: processing new jar, '/Library/Java/ JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents/Classes/jsse.jar' *sys-package-mgr*: processing new jar, '/Library/Java/ JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents/Home/lib/jce.jar' *sys-package-mgr*: processing new jar, '/Library/Java/ JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents/Classes/charsets.jar' *sys-package-mgr*: processing new jar, '/System/Library/Java/ Extensions/AppleScriptEngine.jar' *sys-package-mgr*: processing new jar, '/System/Library/Java/ Extensions/CoreAudio.jar' *sys-package-mgr*: processing new jar, '/System/Library/Java/ Extensions/dns_sd.jar' *sys-package-mgr*: processing new jar, '/System/Library/Java/ Extensions/j3daudio.jar' *sys-package-mgr*: processing new jar, '/System/Library/Java/ Extensions/j3dcore.jar' *sys-package-mgr*: processing new jar, '/System/Library/Java/ Extensions/j3dutils.jar' *sys-package-mgr*: processing new jar, '/System/Library/Java/ Extensions/jai_codec.jar' *sys-package-mgr*: processing new jar, '/System/Library/Java/ Extensions/jai_core.jar' *sys-package-mgr*: processing new jar, '/System/Library/Java/ Extensions/mlibwrapper_jai.jar' *sys-package-mgr*: processing new jar, '/System/Library/Java/ Extensions/MRJToolkit.jar' *sys-package-mgr*: processing new jar, '/System/Library/Java/ Extensions/QTJava.zip' *sys-package-mgr*: processing new jar, '/System/Library/Java/ Extensions/vecmath.jar' *sys-package-mgr*: processing new jar, '/Library/Java/ JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents/Home/lib/ext/ apple_provider.jar' *sys-package-mgr*: processing new jar, '/Library/Java/ JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents/Home/lib/ext/ dnsns.jar' *sys-package-mgr*: processing new jar, '/Library/Java/ JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents/Home/lib/ext/ localedata.jar' *sys-package-mgr*: processing new jar, '/Library/Java/ JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents/Home/lib/ext/ sunjce_provider.jar' *sys-package-mgr*: processing new jar, '/Library/Java/ JavaVirtualMachines/1.6.0_22-b04-307.jdk/Contents/Home/lib/ext/ sunpkcs11.jar' Jython 2.5.2 (Release_2_5_2:7206, Mar 2 2011, 23:12:06) [Java HotSpot(TM) 64-Bit Server VM (Apple Inc.)] on java1.6.0_22 >>> import foo import foo Traceback (most recent call last): File "<stdin>", line 1, in <module> ImportError: No module named foo >>> import sys import sys >>> sys.path ['', '/Users/hinsen/test/jython/clean-dir/Lib', '__classpath__', '__pyclasspath__/'] I tried both "Lib" and "lib", neither one works. Are the instructions outdated? Is there another way to do this? Thanks in advance, Konrad. |