Использование Java из C ++ - PullRequest
       6

Использование Java из C ++

5 голосов
/ 30 сентября 2010

Как разработчик C ++, я иногда сталкиваюсь с библиотеками Java, такими как iText , Batik , JasperReports и JFreeChart .В каждом случае эквивалентные кроссплатформенные библиотеки C ++ кажутся гораздо менее зрелыми, гораздо более дорогими или недоступными.

Практически ли целесообразно использовать эти библиотеки Java из моего приложения C ++ для составления отчетов, составления диаграмм и тому подобного?Если да, каков наилучший подход к этому?

  • Использовать JNI для встраивания JVM в мое приложение?
  • Использовать GCJ для компиляции библиотек Java в нативный код?
  • Какой-то другой метод интеграции, о котором я не знаю?
  • Отказаться, так как вызов библиотеки Java из C ++ будет слишком трудным для практического использования, и вместо этого вложите свои усилия в поиск библиотек C ++?

1 Ответ

3 голосов
/ 30 сентября 2010

Наименее сложным способом интеграции является подход старой школы UNIX: запустить небольшую Java-программу, которая выполняет нужную вам задачу, и связаться с ней по STDIN / STDOUT.

Это может быть невозможно не во всехслучаи, но это определенно для случаев использования, таких как PDF, SVG, создание отчетов и создание диаграмм, которые в значительной степени включают создание отдельных документов для сохранения или отображения.

Следите за регистрацией log4j, slf4j, JUL и т. д., если вы берете этоподход!Все, что Java-программа записывает в стандартный формат, может повредить документ, полученный в программе C ++.В этом случае может быть лучше отключить ведение журнала или использовать сокеты.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...