ImageJ Buat .jar untuk menjalankan kumpulan makro

Saya menulis beberapa makro untuk ImageJ dan saya ingin membuat file .jar (.zip) untuk memudahkan distribusi dan instalasi. Saya tidak dapat menemukan cara menjalankan makro yang terletak di dalam file jar. Saya melihat API ImageJ dan mungkin karena saya tidak terbiasa dengan Java saya tidak dapat menemukan jawabannya.

File jar berisi:

  1. plugins.config

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

    print("Hello world");
    
  3. My_plugin.java dan file .class terkait

    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");
        }
    }
    

Saya kira saya melewatkan sesuatu. Bantuan akan sangat dihargai.


person Nicolas Stifani    schedule 27.11.2015    source sumber


Jawaban (1)


Hal ini telah dibahas beberapa kali di komunitas ImageJ.

Cara termudah untuk mendistribusikan makro, skrip, dan plugin adalah dengan menggunakan situs pembaruan Anda sendiri. Dalam hal ini, tidak perlu mengemas skrip ke dalam file jar, dan pengguna dapat menginstal semua skrip Anda sekaligus dengan satu klik.

Jika Anda lebih suka mengemas skrip Anda ke dalam file jar, lihat plugin Peluncur Skrip: plugin ini memungkinkan untuk melakukan persis apa yang Anda coba lakukan, dengan hanya menyediakan file skrip dan file plugins.config, menjadikan langkah #3 Anda mubazir.

Masalah pada kode Anda di atas adalah ImageJ tidak dapat melihat file sumber daya my_macro.txt di file jar. Anda perlu menggunakan metode ClassLoader#getResourceAsStream() untuk melakukan itu. Lihat bagaimana kabarnya dilakukan di Peluncur Skrip.

person Jan Eglinger    schedule 30.11.2015
comment
Perhatikan bahwa Script_Launcher belum dikirim bersama Fiji, tetapi akan tiba dalam beberapa hari ke depan. - person ctrueden; 03.12.2015