您好,我正在尝试将参数传递给ImageJ插件.但是,无论我通过什么,程序都将参数字符串视为空.我在互联网上找不到有关该问题的任何文档.
我的Java插件看起来像这样,并且可以正常编译.
import ij.plugin.PlugIn;
public class Test implements PlugIn {
public void run(String args) {
IJ.log("Starting plugin Test");
IJ.log("args: ." + args + ".");
}
}
我进行编译,制作一个.jar文件,并将其放入ImageJ plugins文件夹中.
我可以使用ImageJ userInterface(插件>分段>测试)来调用它,宏记录器将使用的命令放入:
run("Test");
然后执行我的代码,按预期方式弹出日志窗口:
Starting plugin Test
args: ..
我可以在.ijm文件中手动运行相同的命令,并获得相同的结果.
但是,当我运行以下宏命令时:
run("Test", "my_string");
我在日志窗口中得到了相同的结果:
Starting plugin Test
args: .. //
它应该显示在什么地方(至少我期望它做什么)
Starting plugin Test
args: .my_string.
所以我的问题是:如何将参数传递给PlugIn,尤其是如何访问它们?
非常感谢
编辑
嘿,我找到了一种绕过该方法的方法:
使用Macro.getOptions():此方法将检索传入参数的字符串到插件.
但是,我仍然找不到传递超过1个字符串参数的方法.我尝试重载PlugIn.run()方法,但是它根本不起作用.
我的快速解决方案是将所有参数放在1个字符串中,并用空格分隔.然后我分割了这个字符串:
String [] arguments = Macro.getOptions().split(" ");
我看不到一种更方便的解决方法.我不敢相信这种情况有多么愚蠢.
请,如果您有更好的解决方案,请随时分享!谢谢
解决方法:
This method is called when the plugin is loaded. ‘arg’, which may be blank, is the argument specified for this plugin in IJ_Props.txt.
要在从宏代码运行插件时使用options参数,应使用GenericDialog来获取选项,或者(如您所知,这很困难)使用了辅助功能Macro.getOptions().
标签:macros,imagej,plugins,java
来源: https://codeday.me/bug/20191029/1962519.html
ImageJ插件参数传递问题及解决方法
本文档描述了一位开发者在尝试将参数传递给ImageJ插件时遇到的问题。他们发现无论通过何种方式传递参数,插件总是接收到空字符串。经过研究,他们发现可以通过Macro.getOptions()方法获取传入的参数字符串,但无法直接传递多个参数。最后,作者提出了一种临时解决方案,即将所有参数合并为一个字符串并通过空格分隔,然后在插件内部进行分割。尽管找到了工作方式,但作者仍在寻求更优雅的解决方案。

被折叠的 条评论
为什么被折叠?



