ImageJ Создайте .jar для запуска набора макросов

Я написал несколько макросов для ImageJ и хотел бы создать файл .jar (.zip), чтобы упростить распространение и установку. Я не могу найти способ запустить макрос, который находится в файле jar. Я просмотрел API ImageJ и, возможно, из-за того, что я не знаком с Java, я не смог найти ответ.

Файл jar содержит:

  1. плагины.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");
        }
    }
    

Думаю, я что-то упускаю. Помощь будет искренне признательна.


person Nicolas Stifani    schedule 27.11.2015    source источник


Ответы (1)


Это обсуждалось несколько раз в сообществе ImageJ.

Самый простой способ распространения макросов, скриптов и подключаемых модулей — с помощью собственного сайта обновлений. В этом случае нет необходимости упаковывать сценарии в файл jar, и пользователи могут установить все ваши сценарии сразу одним щелчком мыши.

Если вы все же предпочитаете упаковывать свои скрипты в jar-файл, взгляните на плагин Script Launcher: он позволяет делать именно то, что вы пытаетесь сделать, предоставляя только файл сценария и файл plugins.config, что делает ваш шаг № 3 излишним.

Проблема в приведенном выше коде заключалась в том, что ImageJ не может видеть файл ресурсов my_macro.txt в файле jar. Для этого вам нужно использовать метод ClassLoader#getResourceAsStream(). См. как это делается в панели запуска сценариев.

person Jan Eglinger    schedule 30.11.2015
comment
Обратите внимание, что Script_Launcher еще не поставляется с Фиджи, но будет в ближайшие несколько дней. - person ctrueden; 03.12.2015