2011-06-14 43 views
2

當通過nailgun運行Jython程序時,jython程序始終以第一次運行時的 命令行參數運行。爲什麼nailgun緩存命令行參數?

第一我開始nailgun:

[email protected]:~/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」作爲參數:

[email protected]:~/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'] 

字 「第二」 作爲參數再次運行它,它打印 「第一」

[email protected]:~/nailgun$ ./ng org.python.util.jython tmp.jy second 
['tmp.jy', 'first'] 

始終打印 「第一」 從那時起:

[email protected]:~/nailgun$ ./ng org.python.util.jython tmp.jy third 
['tmp.jy', 'first'] 

回答

4

nailgun作者在這裏。

Nailgun不會按設計緩存命令行參數,但單實例和其他靜態變量將在調用之間存活。

我不是一個python傢伙,但「sys.argv」用法對我來說看起來像一個單身人士。我建議看看jython的命令行參數處理,看看它爲什麼沒有得到更新。

如果你這樣做,請發佈你發現的東西......它可能是釘槍中的東西,但它不是我在多年使用中見過的東西。

+0

Nailgun是一個偉大的工具!你有進一步發佈的計劃嗎? – 2012-11-21 05:56:05