有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

从任何java应用程序调用自己的eclipse插件方法

我想做以下几点:

创建一个自己的Eclipse插件,该插件(例如)只有一个方法“sayHello”,显示消息“helloworld”

就这么好

但是现在我想让安装了我的插件的用户从他们的java代码中调用这个方法。诸如此类:

//[...]
org.jjoe64.my_eclipse_plugin.Plugin.sayHello(); // of course this won't work...
//[...]

有人知道怎么做吗?我觉得有点复杂


共 (2) 个答案

  1. # 1 楼答案

    基本上,您希望从编译的代码调用运行插件,并从Eclipse调用运行。因为这是两个独立的过程,所以没有直接调用方法的简单方法

    一个简单的解决方案是让插件轮询它在用户工作区中创建的临时文件

    class Plugin {
       void Activate() {
          while (true)
             if (temporaryFile.hasChanged())
                doSomething();
       }
    }
    

    创建一个库,用户可以将其导入到项目中。他们调用该库中更新文件的函数:

    class PluginCaller {
        static void sendMessageToPlugin(String message) {
             temporaryFile.append(message);
        }
    }
    

    当您的插件看到发生了更改时,它的行为就好像调用了该方法一样

  2. # 2 楼答案

    JUnit也有同样的问题。它通过让用户可见的静态方法生成一个单独的进程来解决这个问题,插件会监视该进程的状态。事实上,许多外部程序的Eclipse插件只是运行命令行和监视输出/日志。(通过Garrett Hall