инструмент для создания оболочки C ++ над классом Java - PullRequest
5 голосов
/ 27 декабря 2010

Из того, что я понимаю, SWIG должен обернуть C ++ / C, чтобы он появился в Java, а javah - реализовать некоторые функции Java в C ++ (также как и нативные функции).
Есть ли инструмент, который может создать оболочку C ++ над классом Java, так что вызывающий. этого с ++ Оболочка не должна беспокоиться о Java, например
Входной Java является

  class hw {  
    public  void hi() {  
      System.out.println("Hello World");  
    }  
  }  

Инструменты выводят hw.hh (и некоторые файлы .c ++), которые можно использовать как:

hw * h = новый hw (/ * JEnv * / env);
h-> привет ();

Есть ли инструмент, который может это сделать?

Ответы [ 2 ]

5 голосов
/ 27 декабря 2010

Варианты включают следующее в порядке возрастания расходов для вас.

  • Рукописный JNI код, написанный клиентами вашего Java-класса.
  • Рукописные, JNI-управляемые оболочки, написанные вами для клиентов вашего класса.
  • JACE -производимые обертки. JACE - это бесплатный инструмент. Последняя версия была в 2008 году; не уверен, что разработка продолжается.
  • JunC ++ ion -производимые обертки. Эта коммерческая библиотека дает лучшие результаты при минимальных усилиях по разработке. Он поддерживает обратные вызовы Java, классы C ++ реализуют интерфейсы Java. Автор очень отзывчивый и очень хороший парень. Однако есть ценник, и вы хотите быть уверены в стоимости развертывания.
2 голосов
/ 27 декабря 2010

Я использовал этот продукт очень давно, http://www.codemesh.com/products/junction/

Он будет делать именно то, что вы хотите.

Просто отказ от ответственности, я использовал его почти 6 лет назад.Я не связан с этим продуктом.

...