jython -cp FOO:BAR:BAZ argle.py
と同様のことをしたいのですが。
FOO
、BAR
、およびBAZ
を$CLASSPATH
に追加すると、これは機能します。実行時にそれらをsys.path
に追加しようとしましたが、jarでは機能しないようです。実行時にsys.path
に展開されたjarファイルへのパスを追加すると、それはdoes機能します。 jarファイルを分解する簡単な方法はありますか?このスクリプトを実行するすべてのユーザーに対して$CLASSPATH
を拡張することは、許容できる代替策ではありません。
ありがとう。
-D
オプションを設定するpython.path
:
jython -Dpython.path=FOO:BAR:BAZ argyle.py
jython
コマンドは、Java
コマンドへの引数の受け渡しをサポートしています...したがって:
jython -J-cp JAR1:JAR2
--print
スイッチを追加して、結果のコマンドを確認できます。
jython -J-cp JAR1:JAR2 --print
上記は実際のJavaコマンドを実行する代わりに出力します。
Java -cp JAR1:JAR2:jython.jar org.python.util.jython pythonScript.py
は、LinuxとMacintoshの両方で動作します。 Windowsでは、クラスパスのコロンをセミコロンに交換すると、黄金色になります。
関連するすべてのクラスを含む大きなJARを作成できます。次のAntスニペットは、アイデアを示しています。
<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>