Почему nailgun кеширует аргументы командной строки?
При запуске Jython-программ через nailgun jython-программа всегда запускается с аргументами командной строки при первом запуске.
сначала я начинаю маникюр
arthur@a:~/nailgun$ java -jar nailgun.jar
NGServer started on all interfaces, port 2113.
затем, когда я запускаю простой скрипт jython:
import sys
print sys.argv
затем добавьте Jython в classpath
./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']
1 ответ
Автор гвоздя здесь.
Nailgun не кеширует аргументы командной строки, но синглтоны и другие статические переменные сохраняются между вызовами.
Я не парень на питоне, но использование "sys.argv" для меня выглядит как синглтон. Я бы посоветовал изучить обработку аргументов командной строки в jython, чтобы понять, почему она не обновляется.
Если вы сделаете это, пожалуйста, напишите, что вы найдете... это может быть что-то в гвоздодере, но это не то, что я когда-либо видел за несколько лет использования.