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

标签 java jar macros imagej

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

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

我想我错过了一些东西。我们将真诚地感谢您的帮助。

最佳答案

这已被讨论过 few times已经在 ImageJ 社区中。

分发宏、脚本和插件的最简单方法是 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 .

关于java - ImageJ 创建一个 .jar 来运行一组宏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33965742/

相关文章:

java - 如何使用hibernate工具生成JPA标准中的POJO类?

java - Tomcat6 .war 文件部署问题

java - 我在哪个目录运行 java -jar my-webapp-0.1.0-standalone.jar?

C编程: Calling a function with macros

c - 为什么这个宏被定义为({ 1; })?

java - 如何删除数组列表中的对象

java - Spring LDAP : not granted any authorities

java - 可执行的 shell 脚本在嵌入然后从 java 存档中提取后仍然可以执行吗?

java - 从外部 jar 文件中卸载的类中读取字节码

visual-studio - 从 Visual Studio 在浏览器中加载搜索 URL