我想做类似jython -cp FOO:BAR:BAZ argle.py
的事情。
如果我添加FOO
,BAR
和BAZ
到$CLASSPATH
这是有效的。我试图在运行时将它们添加到sys.path
,但这似乎不适用于罐子。它确实工作,如果我在运行时将扩展罐的路径添加到sys.path
。有没有简单的替代方法来爆炸jar文件?为每个运行此脚本的用户增加$CLASSPATH
不是可接受的选择。
谢谢。
我想做类似jython -cp FOO:BAR:BAZ argle.py
的事情。
如果我添加FOO
,BAR
和BAZ
到$CLASSPATH
这是有效的。我试图在运行时将它们添加到sys.path
,但这似乎不适用于罐子。它确实工作,如果我在运行时将扩展罐的路径添加到sys.path
。有没有简单的替代方法来爆炸jar文件?为每个运行此脚本的用户增加$CLASSPATH
不是可接受的选择。
谢谢。
可以使用-D
选项设置python.path
:
jython -Dpython.path=FOO:BAR:BAZ argyle.py
您可以创建一个包含所有相关类的大JAR。下面的蚂蚁片段展示了这个想法:
<target name="jar">
<mkdir dir="build/jar"/>
<unjar src="lib/jython.jar" dest="${classes.dir}" />
<unjar src="lib/FOO.jar" dest="${classes.dir}" />
<unjar src="lib/BAR.jar" dest="${classes.dir}" />
<unjar src="lib/BAZ.jar" dest="${classes.dir}" />
<jar destfile="build/jar/bigjython.jar" basedir="${classes.dir}">
<manifest>
<attribute name="Main-Class" value="${main-class}"/>
</manifest>
</jar>
</target>
现在如何使用bigjython.jar运行我的脚本? – 2009-02-11 17:02:45
bigjython.jar是为了包含原始的jython.jar加上你的额外的jar。所以在最后,bigjython jar应该和jython.jar一样工作,但不需要-cp参数。 – axelclk 2009-02-11 20:28:44
java命令JAR1:JAR2:jython.jar org.python.util.jython pythonScript .py在Linux和Macintosh上都适用。在Windows上,交换类路径中的冒号以获得分号,您应该是金手指。
jython
命令支持通过传递参数给java
命令...所以:
jython -J-cp JAR1:JAR2 --print
上面会打印出:
jython -J-cp JAR1:JAR2
您可以通过添加--print
开关验证结果的命令实际的java命令而不是执行它。
我也想知道这个!我查看了jython启动脚本,但是我的bash不够好理解它。 – 2009-02-24 03:38:03