Использование библиотеки Java в приложении Objective-C для Mac и размещение этого приложения в Mac App Store - PullRequest
5 голосов
/ 24 декабря 2011

Я уже некоторое время исследую эту проблему, и пока не получил четкого ответа.Я пишу приложение для Mac OSX, которое я собираюсь в конечном итоге поместить в магазин приложений, и хотя я смогу написать большую его часть в Objective-C, мне нужно вызывать методы из библиотеки, доступной только на Java.У меня есть 2 вопроса:

  1. Из того, что я прочитал, кажется, что JNI (использующий Invocation API ) является единственным приемлемым способом сделать это (хотяApple не одобряет использование Java в приложениях Mac, и это не совсем приемлемо).Есть ли другой способ сделать это?

  2. Я читал, что Apple не разрешает приложения Java в магазине приложений Mac, но позволит ли это в основном нативное приложение, которое использует JNI длявключить некоторые классы Java?Поскольку JNI можно использовать для «упаковки» виртуальной машины Java с приложением, похоже, что прекращение Apple включения Java с OSX в будущем не должно быть проблемой.

Вашпонимание будет высоко ценится.Благодарю.

1 Ответ

3 голосов
/ 02 января 2012

@ Эндрю - в двух словах, если то, что вы делаете, очень просто (и не касается библиотек, использующих java.awt или java.swing), тогда GCJ / могли бы / работать.Я бы не рекомендовал это вообще.Причина, по которой я это говорю, заключается в том, что GCJ не поддерживает / многие / «более новые» функции Java, и если ваш код Java не написан для старой версии JDK, вы столкнетесь с проблемами компиляции.Если вы скомпилируете с внешними сторонними приложениями, например eclipse.anything и т. Д., Вы столкнетесь с огромными головными болями.

Я предполагаю, что у вас есть код, который вы уже написали в Java, и хотите использовать этот код в качестве службыгораздо приятнее (и родной) objc UI.Если это так, то, честно говоря, я думаю, что вы найдете гораздо больший успех и гораздо меньше головной боли, просто перекусив пулю и создав кодовую базу objc для вашего сервисного уровня: (

Конечно, есть возможность использованиянативный mac ui - просто тонкий клиент для облачного уровня распределенных сервисов (написан на java ofc). Но я не уверен, как / что думает яблоко о тонких клиентах для веб-сервисов в их магазине приложений.

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