SciJava scripts被设计为独立于用户界面运行——包括headless,无用户界面。通过使用script parameters,这连接很容易。
要在无头模式下启动Fiji,请运行:
fiji --headless
默认情况下,当斐济无头运行时,它就像一个间歇程序:它只会执行请求的操作,然后退出。要无头运行脚本,请使用:
fiji --headless --run path/to/script [key1=value1,key2=value2,...]
In many cases, it is necessary to enclose the entire list of key/value pairs in single quotes, to avoid shell expansion. See the following examples.
基本运行
假设我们将以下Python脚本保存在文件中,hello.py:
#@String name
print('Hello ' + name)
我们可以使用 Linux 上的命令运行此脚本:
fiji --headless --run hello.py 'name="Mr Kraken"'
请注意,name参数必须用双引号括起来,因为它是字符串文字。
在Windows系统上,单/双引号可能会颠倒,这样字符串就用单引号括起来,而参数列表以及py脚本的路径则用双引号括起来。
fiji --headless --run "PathTo/hello.py" "name='Mr Kraken'"
在macOS系统上,该命令可以使用与Linux上相同的引用运行:
fiji --headless --run hello.py 'name="Mr Kracken"'
多个参数
如果您的脚本有多个参数:
#@String name1
#@String name2
print('Hello ' + name1 + " and " + name2)
然后使用逗号分隔的参数对列表来填充它们,例如:
fiji --headless --run hello.py 'name1="Mr",name2="Mrs Kraken"'
同样,对于 Windows(同样尊重单/双引号)或 macOS,
fiji --headless --run "PathTo/hello.py" "name1='Mr', name2='Kraken'"
fiji --headless --run hello.py 'name1="Mr",name2="Mrs Kraken"'
控制更新程序
为了防止在无头模式下不必要的服务器连接来更新站点,您可以设置imagej.updater.disableAutocheckjava参数true:
fiji -Dimagej.updater.disableAutocheck=true -- --headless --run hello.py 'name="Mr Kraken"'
通常,无头模式用于运行大量脚本,这可能会导致大量服务器连接。设置此参数可以防止此问题。此参数在启动之间不会持续存在,并且每次应阻止服务器连接到更新站点时都必须包含此参数。
The Updater can also be controlled in headless mode.