我想做類似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