Можно ли использовать не Java-код в плагине eclipse?

Я уже давно пользуюсь инструментом, и он мне так нравится, что я хотел бы использовать его как плагин Eclipse. К сожалению, я думаю, что это написано на C++. Есть ли способ, чтобы такая база кода могла использоваться в качестве основы для плагина Eclipse, не переписывая его на Java?

Кстати: инструмент с закрытым исходным кодом, коммерческий, поддерживается кем-то другим и должен использоваться в качестве графического виджета. Мне больше всего интересно, будет ли вообще возможно, что я смогу уговорить владельцев сделать это.

4 ответа

Вы можете попытаться создать оболочки Java для своего кода C++, используя SWIG (или простой JNI, который, тем не менее, является основным PITA).

В зависимости от того, что это за инструмент, вы можете рассмотреть несколько других вариантов. Если это инструмент генерации кода или перевода, вам может потребоваться не что иное, как пользовательский компоновщик, который может вызвать инструмент как часть процесса сборки с опциями и целями по вашему выбору. Например, вы можете без проблем запустить сборку Visual Studio как часть компиляции Eclipse.

Или, если это графический инструмент, проверьте, является ли это COM-объектом, который можно легко "обернуть" в Java и, следовательно, в плагин Eclipse.

И, наконец, я также хотел бы проголосовать за SWIG. Этот материал действительно хорош и позволяет довольно легко обернуть C или C++ API в Java и создать для вас тонну кода JNI.

Вы всегда можете использовать JNI

В целом, интеграция существующих собственных приложений и инструментов в Eclipse - это серьезное усилие. Если вы хотите убедить сопровождающих сделать это, вам нужно будет убедить их, почему перенос на Eclipse был бы им полезен.

Однако, если есть подходящий C++ API, вы можете многое сделать самостоятельно. Вы можете обернуть API, используя SWIG, или написать исполняемый файл-обертку, который связывается, используя некоторые из них для протокола сериализации, например, Google Protobuf. Однако, это не будет заботиться об интеграции пользовательского интерфейса в Eclipse, поэтому, если инструмент имеет большой объем пользовательского интерфейса, это, вероятно, вам мало поможет.

Другие вопросы по тегам