2

ネイルガンを介して Jython プログラムを実行すると、jython プログラムは常に、最初に実行されたときのコマンド ライン引数で実行されます。

まず、ネイルガンを開始します。

arthur@a:~/nailgun$ java -jar nailgun.jar 
NGServer started on all interfaces, port 2113.

次に、単純な jython スクリプトを実行すると:

import sys

print sys.argv

次に、jython をネイルガンのクラスパスに追加します

./ng ng-cp /usr/share/java/jython.jar 

次に、引数として「first」という単語を指定してスクリプトを実行します。

arthur@a:~/nailgun$ ./ng org.python.util.jython tmp.jy first
*sys-package-mgr*: can't create package cache dir, '/usr/share/java/jython.jar/cachedir/packages'
['tmp.jy', 'first']

「second」という単語を引数として再度実行すると、「first」が出力されます

arthur@a:~/nailgun$ ./ng org.python.util.jython tmp.jy second
['tmp.jy', 'first']

それ以降は常に「最初」に出力されます。

arthur@a:~/nailgun$ ./ng org.python.util.jython tmp.jy third
['tmp.jy', 'first']
4

1 に答える 1

4

ネイルガンの作者はこちら

Nailgun は設計上、コマンド ライン引数をキャッシュしませんが、シングルトンやその他の静的変数は呼び出し間で存続します。

私はPythonの男ではありませんが、「sys.argv」の使用法は確かにシングルトンのように見えます。jython のコマンド ライン引数の処理を調べて、更新されない理由を確認することをお勧めします。

これを行う場合は、見つけたものを投稿してください... ネイルガンの何かかもしれませんが、数年間使用したことはありません。

于 2011-06-15T19:55:49.963 に答える