Как вызвать метод в jar-файле из Visual C ++? - PullRequest
4 голосов
/ 24 марта 2011

В моем проекте у меня есть требование вызывать методы в файле Jar, используя VC ++.Есть ли способ вызвать методы внутри файла JAR из VC ++.Если есть пример кода, то это очень поможет.

Заранее спасибо!Arun

Ответы [ 2 ]

1 голос
/ 24 марта 2011

Если вы используете C ++ в качестве целевого языка, то вы должны использовать JNI (http://java.sun.com/docs/books/jni/). JNI определяет интерфейс для обмена данными и вызова методов из / в Java и нативный код. Довольно просто написать JNIОболочка к классу, который содержит методы, возвращающие и принимающие входные простые параметры (то есть нативные типы, без коллекции, без массивов). Когда методы включают классы, коллекции, массивы и т. д., это может быстро стать громоздким, чтобы написать оболочку JNI вручнуюВ этой статье представлен хороший обзор: http://java.sys -con.com / node / 45840 . В этом случае вы можете оценить генератор оболочки, например GIWS: http://www.scilab.org/products/other/giws.

Если выМы используем среду .NET в качестве целевой платформы, тогда IKVM является одним из вариантов. Однако, когда нам пришлось сделать это для реального проекта, мы предпочли JNBridge, и у нас был довольно успешный этот (коммерческий) инструмент. Мы не оценивали IKVM длябизнес-причина: наш клиент хотел только официально поддерживаемое промежуточное ПО.

1 голос
/ 24 марта 2011

IKVM.Net (http://www.ikvm.net) - это реализация .Net библиотек Java, которая на самом деле не то, что вам нужно, но включает инструмент командной строки под названием ikvmc (см. http://sourceforge.net/apps/mediawiki/ikvm/index.php?title=Ikvmc), который преобразует байт-код Java в код .Net IL и создает библиотеку DLL .Net. Я успешно использовал ее для перевода библиотеки Java в сборку, которую я затем включил в проект C #.

...