java - 有没有办法从 java 调用 imagej 宏(.ijm)(即将宏存储为字符串并使用 imagej 的 java 控件执行它)?

标签 java macros imagej

问题的逆向是:

如何从 ImageJ 宏调用/执行 java 程序?

每当我写 imagej 时,我指的是斐济。

当然,一个简单的解决方案是从 java 字符串创建一个 .ijm 并使用以 .ijm 作为参数的系统调用来调用 imagej,但我正在寻找更好的解决方案。或者,可以将 .ijm 指令翻译成 java 调用,但这不是很方便(当 .jvm 足以完成工作时,将其保留为这种格式是非常方便的方法)。

为什么有用?它可以用于例如以混淆方式分发 .ijm 宏 - 使用户更难提取宏。只有提供正确的密码等才能解密包含.ijm指令的字符串。感谢您的任何建议!

最佳答案

使用 ij.IJ.runMacro(String) 方法。

这是一个例子:

import ij.IJ;
import ij.plugin.PlugIn;

public class Run_Macro implements PlugIn {
    @Override
    public void run(final String arg) {
        final String macro =
            "run(\"Clown (14K)\");\n" +
            "run(\"Make Binary\");\n";
        IJ.runMacro(macro);
    }
}

关于混淆的警告,虽然:Java 是 notoriously easy to decompile .

关于java - 有没有办法从 java 调用 imagej 宏(.ijm)(即将宏存储为字符串并使用 imagej 的 java 控件执行它)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20574863/

相关文章:

java - 如何使用 Scanner 将多种数据类型文件读入 ArrayList

java - 如何使用Java的String.hashCode()函数来制作哈希表?

java - 当alpha已满时,ARGB和ARGB_PRE是否相同?

具有弱 self 的 Objective-C 宏

java - ImageJ API : Getting RGB values from image

macros - ImageJ 宏 - selectImage(id) 导致 ImageJ 崩溃

java - Eclipse启动器ini配置变量可以采用相对路径吗?

c - 如何在 C 中使用宏连接两个宽字符串?

c++ - 为什么 Boost.Hana 使用宏来打开/关闭命名空间?

macros - 区分大小写的字符串比较 Image J Macro