Почему nailgun кеширует аргументы командной строки? - PullRequest
2 голосов
/ 15 июня 2011

При запуске Jython-программ через nailgun jython-программа всегда запускается с аргументами командной строки при первом запуске.

сначала я запускаю nailgun:

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

затем, когда я запускаю простой скрипт jython:

import sys

print sys.argv

, затем добавляю jython в classpath nailguns

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

и всегда печатает «first» с этого момента:

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

1 Ответ

4 голосов
/ 15 июня 2011

Автор гвоздя здесь.

Nailgun не кеширует аргументы командной строки, но синглтоны и другие статические переменные сохраняются между вызовами.

Я не парень на питоне, но использование "sys.argv" для меня выглядит как синглтон. Я бы посоветовал изучить обработку аргументов командной строки в jython, чтобы понять, почему она не обновляется.

Если вы сделаете это, пожалуйста, напишите, что вы нашли ... это может быть что-то в гвоздоджине, но это не то, что я когда-либо видел за несколько лет использования.

...