除了Java,是否有可能在Eclipse中编写插件?

3

有人能帮我用C++写一个eclipse插件吗?


@weekens和@celavek,谢谢你们的信息。我正在学习JNI并尝试实现它。

@celavek:我们需要做什么样的控制/主人?用C++和Java接口处理是否更加危险。

我的需求是在Java中添加自己的属性,而他们使用Propertypages包来完成。但是如何在C++中实现呢?


如果你问这个问题是因为你的Java知识还不够扎实,我强烈建议你尝试用Java写全部代码。学习一门新语言是增强编程技能的好方法。 - Gyan aka Gary Buyn
@Gary Buyn:这不仅是学习的事情。我们在项目中有两个部分(一个作为插件,一个作为独立应用程序),它必须使用CDT开发。而且,是的,我对Java还很陌生。 - Ambuja
好的,我只是想说一下。 - Gyan aka Gary Buyn
原来您正在尝试编写一个首选项页面,当您的客户使用CDT插件时会显示出来?而您的首选项控制什么呢?能否请您更新一下您的问题并提供这些信息? - Paul Webster
@Paul Webster:是的,客户使用我们的CDT插件。我更喜欢控制客户的前景属性。在问题中提及客户的期望是否必要?如果是,我可以提供。 - Ambuja
2个回答

3

Eclipse框架是用Java编写的,整个插件基础设施都是围绕这一点构建的,这基本上意味着大多数情况下您需要使用Java编写插件(有其他语言与JVM一起工作的可能性,请参见下面的注释和关于Jython的说明)。但是,有可能将部分插件功能编写为C++(或其他语言),然后将C++接口桥接到Java中,从而使其在插件中可用。为此,您可以尝试使用JNIMS COMMozilla XPCOMCORBA(您可以尝试omniORB)或Swig。我曾经使用XPCOM和Swig在以前的工作中进行过这种接口设计 - 我们有一个用C++编写的调试器引擎,并通过XPCOM将接口/功能公开给Eclipse Java插件。我相信还有其他选择,例如Jython - 我一直在使用它来编写一些小型Python脚本,然后直接在Eclipse中公开。

请注意,这种接口有时会变得非常复杂 - 您需要对不同的技术和几种语言有很好的了解,并在两个世界中维护接口/代码 - 有时是一种痛苦,但很多时候您可以取得非常好的结果。玩得开心。


感谢提供的信息。我正在学习JNI并尝试实现它。 我们需要进行什么样的主控制?在C++和Java接口中处理是否更加危险?我的要求是在Java的首选项页面中添加自己的属性,他们使用Propertypages包来完成。但是如何在C++中实现呢? - Ambuja
"主/控制" - 我指的是你需要对不同的技术和语言有良好的了解。为什么你需要在属性页中使用C ++? - celavek
客户要求我们在 CDT 中实现,而我们的团队不懂 Java。 - Ambuja
@Ambuja - 使用CDT进行开发与Eclipse插件无关。 - celavek
@Ambuja - 使用CDT进行开发与Eclipse插件无关。CDT是C\C++工具集,它允许您使用Eclipse IDE开发C\C++应用程序。CDT本身是用Java编写的,以便可以将其插入到Eclipse中。如果您只需要开发C++应用程序,则可以使用带有CDT的Eclipse作为IDE,而不必担心Java。如果您需要通过C++应用程序和Eclipse插件公开功能,则可以采用建议的方法:将功能放入“引擎”,然后通过JNI(XPCOM)从C++应用程序和Eclipse插件中使用它。 - celavek
显示剩余5条评论

2
我认为,只有使用JNI才能实现这一点。因此,您仍然需要Java。Eclipse插件基础设施是一个纯Java框架。

感谢提供的信息。我正在学习JNI并将尝试实现它。 - Ambuja
请注意,使用本地部分会使您的应用程序非常不稳定。本地部分的异常可能会导致整个Java虚拟机(即整个Eclipse)崩溃。因此,也许最好尝试使用Java方式? - weekens
如果我使用Mozilla XPCOM,它会不稳定吗? - Ambuja

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接