ImageJ创建一个.jar来运行一组宏



我为ImageJ写了几个宏,我想创建一个.jar(.zip)文件,以简化分发和安装。我找不到运行位于jar文件中的宏的方法。我查看了ImageJ API,可能是因为我不熟悉Java,所以找不到答案。

jar文件包含:

  1. plugin.config

    Plugins>MyPluginFolder, "Function1", my_plugin("my_macro_1.txt")
    
  2. my_macro_1.txt

    print("Hello world");
    
  3. my_plugin.java和相关的.class文件

    import ij.*;
    import ij.process.*;
    import ij.gui.*;
    import java.awt.*;
    import ij.plugin.*;
    import ij.macro.*;
    public class my_plugin implements PlugIn {
        static boolean showArgs = true;
        public void run(String arg) {
            if (arg.equals("my_macro_1.txt"))
                {my_macro_function1(); return;}
        }
        public void my_macro_function1() {
            IJ.runMacro("my_macro_1.txt");
        }
    }
    

我想我错过了什么。我们将衷心感谢您的帮助。

ImageJ社区已经对此进行了多次讨论。

分发宏、脚本和插件的最简单方法是使用自己的更新网站。在这种情况下,不需要将脚本打包到jar文件中,用户只需单击一下就可以一次性安装所有脚本。

如果您喜欢将脚本打包到一个jar文件中,请查看Script Launcher插件:它只提供脚本文件和一个plugins.config文件,从而使您的步骤#3变得多余。

上面代码中的问题是ImageJ在jar文件中看不到资源文件my_macro.txt。您需要使用ClassLoader#getResourceAsStream()方法来执行此操作。查看在脚本启动器中是如何完成的。

最新更新