参数的可用方式取决于调用命令,区别在于附加标志--ij2
and --run
以 Jython 方式。任何一个sys.argv
or # @String
等工作,但不能同时工作
1. 使用 sys.argv 的经典 Python 方式
$/Applications/Fiji.app/Contents/MacOS/ImageJ-macosx --headless JythonScript.py param1 param2
收获参数JythonScript.py
以经典的Python方式sys.argv
, i.e.
# @String param1 ### Does NOT work
import sys
program_name = sys.argv[0]
paramvalue1 = sys.argv[1]
paramvalue2 = sys.argv[2]
2. Jython 特定方式使用 # @String 等。
$/Applications/Fiji.app/Contents/MacOS/ImageJ-macosx --ij2 --headless --run JythonScript_2.py 'param1=value, param2=value'
以 Jython 方式获取参数
# @String param1
# @Long param2
### See http://imagej.net/Script_parameters#Parameter_types
### for a complete list of parameter types
import sys
check = sys.argv
#here check is a length 1 list containing en empty string: check ==['']
注意两个逗号分隔的引号param=value
对。单引号和双引号都有效。当仅存在 1 个参数时可以省略它们。对于字符串参数,请确保将它们括在其他类型的引号中,或者当字符串是纯字母数字时省略引号,例如$/Applications/Fiji.app/Contents/MacOS/ImageJ-macosx --ij2 --headless --run JythonScript_3.py 'stringparam1="string with ',' and space ", stringparam2=abc123'