为什么nailgun缓存命令行参数?

时间:2011-06-14 22:35:28

标签: java jython nailgun

当通过nailgun运行Jython程序时,jython程序总是运行 第一次运行时的命令行参数。

首先我开始使用nailgun:

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

然后当我运行一个简单的jython脚本时:

import sys

print sys.argv

然后将jython添加到nailguns类路径

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

然后使用单词“first”作为arguemnt运行脚本:

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']

并始终打印“first”:

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

1 个答案:

答案 0 :(得分:4)

这是指甲枪的作者。

Nailgun不会按设计缓存命令行参数,但单例和其他静态变量将在调用之间存活。

我不是蟒蛇人,但“sys.argv”使用对我来说确实像个单身人士。我建议查看jython的命令行参数处理,看看为什么它没有得到更新。

如果你这样做,请发布你发现的东西......它可能是钉枪中的东西但是它不是我在几年的使用中见过的东西。