我想做以下事情:
创建一个自己的Eclipse插件,(例如)只有一个方法“sayHello”显示消息“hello world”。
所以非常好。
但是现在我想让安装了我的插件的用户从他们的java代码中调用这个方法。类似的东西:
//[...]
org.jjoe64.my_eclipse_plugin.Plugin.sayHello(); // of course this won't work...
//[...]
有人知道怎么做吗?我认为这有点复杂......
答案 0 :(得分:4)
基本上,您希望从Eclipse编译的代码和正在运行中调用运行插件。因为这是两个独立的过程,所以没有直接调用方法的简单方法。
一个简单的解决方案是让您的插件轮询它在用户工作区中创建的临时文件。
class Plugin {
void Activate() {
while (true)
if (temporaryFile.hasChanged())
doSomething();
}
}
创建用户导入其项目的库。他们调用该库中的一个函数来更新文件:
class PluginCaller {
static void sendMessageToPlugin(String message) {
temporaryFile.append(message);
}
}
当您的插件看到有变化时,它就像调用该方法一样。
答案 1 :(得分:1)
JUnit也有同样的问题。它通过运行用户可见的静态方法生成一个单独的进程来解决它,该进程的状态是插件监视的。事实上,许多外部程序的Eclipse插件只是运行命令行和监视输出/日志。 (通过Garrett Hall)