2009-10-09 4 views
4

Я не могу найти приличную библиотеку карт какао, поэтому я бы хотел использовать JFreechart.Вызов программы Java из приложения какао

Есть ли способ вызвать программу Java из приложения Cocoa? Я думал писать java-приложение, которое возвращает изображение графика, и я бы отобразил его внутри моего приложения Cocoa.

Спасибо,

+0

Есть ли у вас информация о том, разрешено ли изолированным приложениям для Mac AppStore вызывать Java? – Raffael

ответ

5

Apple, имеет очень хорошую (но несколько старый) образец кода проекта как создать приложение, которое использует JNI в Xcode:

http://developer.apple.com/java/jniuniversal.html

Будьте уверены, чтобы проверить пример кода, связанного с этим:

http://developer.apple.com/samplecode/MyFirstJNIProject/MyFirstJNIProject.html

Кроме того, эта Технология Q & А:

http://developer.apple.com/mac/library/qa/qa2005/qa1295.html

Я использовал этот пример для успешного создания приложения, которое использует JNI для запуска и связи с одним экземпляром JVM во время выполнения (вместо того, чтобы нереститься много NSTasks, как упоминалось Пабло в № 2 ниже). В принципе, я принял подход 1 предложение Пабло ниже с этим приложением:

http://ditchnet.org/xslpalette

+0

Я изучу использование JNI, спасибо за эти ссылки. – simao

+1

Обязательно. :) Одно слово совета, если я могу ... делать такие вещи, это настоящая боль в заднице. Я не проводил исследований по собственным инструментам построения диаграмм в C/C++/ObjC, но если вы можете найти родной, лучше было бы потратить время на изучение собственного инструмента, а не инвестировать время в JNI/разговаривать с Java , Можете сэкономить время/головные боли. Но опять же, я не смотрел, поэтому я не уверен. : | –

4

Насколько я знаю, у вас есть два варианта:

  1. использования Java Native Interfaces (JNI) и звоните Java классов из C (какао).
  2. Запустите отдельный процесс java в приложении COCOA для создания графики для вас. Вы можете использовать для этого NSTask.

По моему мнению, хотя первый вариант сложнее реализовать, он более изящный и, вероятно, быстрее. Но второй вариант, безусловно, займет меньше времени для реализации.

Надеюсь, это поможет.

6

Вы можете посмотреть на Core Plot рамках, какао-нативную структуру черчения для Mac и iPhone. Он относительно новый - не такой зрелый, как JFreeChart, но он может делать то, что вам нужно. Это, безусловно, спасло бы вас от боли JNI или межпроцессного хакера.

+0

Я посмотрел на Core-Plot, но они не предлагают никакой документации. Ну, может быть, это проще, чем использовать JNI в любом случае ... Спасибо. – simao

+0

Документация, безусловно, разрежена на веб-сайте Core Plot. Однако проект xcode имеет цель построения Doxygen, которая создает документацию по API и примерное приложение, демонстрирующее большинство (или, возможно, всех) функциональных возможностей фреймворка, чтобы вы могли хотя бы взглянуть на пример кода. –

Смежные вопросы