2015-11-27 31 views
0

我爲ImageJ編寫了幾個宏,我想創建一個.jar(.zip)文件來簡化分發和安裝。我無法找到運行位於jar文件內的宏的方法。我查看了ImageJ API,也許是因爲我對Java不熟悉,我無法找到答案。ImageJ創建一個.jar來運行一組宏

的jar文件包含:

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

我想我錯過了一些東西。我們將衷心感謝幫助。

回答

1

這已經在ImageJ社區討論過fewtimes了。

發佈宏,腳本和插件最簡單的方法是using your own update site。在這種情況下,不需要將腳本打包到jar文件中,用戶只需一次點擊即可安裝所有腳本。

如果你反正喜歡你的腳本打包成一個jar文件,看看在Script Launcher插件:它允許做你想要做的事情,與只提供腳本文件和文件plugins.config,渲染你的第3步是多餘的。

上面代碼中的問題是ImageJ無法在jar文件中看到資源文件my_macro.txt。您需要使用ClassLoader#getResourceAsStream()方法來做到這一點。見how it's done in the Script Launcher

+0

請注意,'Script_Launcher'尚未與斐濟一起發貨,但將在未來幾天內發貨。 – ctrueden