ImageJ สร้าง .jar เพื่อเรียกใช้ชุดมาโคร

ฉันเขียนมาโครหลายตัวสำหรับ ImageJ และฉันต้องการสร้างไฟล์ .jar (.zip) เพื่อให้การแจกจ่ายและการติดตั้งทำได้ง่าย ฉันไม่พบวิธีเรียกใช้แมโครที่อยู่ในไฟล์ jar ฉันดูที่ ImageJ API และอาจเป็นเพราะฉันไม่คุ้นเคยกับ 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