Как создать Java-приложение с интерфейсом Cocoa?

#java #xcode #cocoa #user-interface

#java #xcode #cocoa #пользовательский интерфейс

Вопрос:

Я должен использовать Java API для проекта, но поскольку я не фанат пользовательских интерфейсов Java и у меня Mac, я хочу создать собственное приложение Cocoa на основе кода Java. Я знаю, что Xcode использовался для обеспечения прямой поддержки такого рода вещей, но поскольку он больше не работает, каков наилучший способ сделать это? Если это имеет значение, у меня есть Xcode 3.2.5 под Mac OS 10.6.8.

Комментарии:

1. Единственное, что приходит на ум, это то, что ваш Java-код использует JNI для взаимодействия с кодом Cocoa / Carbon.

Ответ №1:

Вы можете использовать любой Cocoa API через этот мост Java-Objective-C. В отличие от Rococoa, он не требует, чтобы вы генерировали целую кучу заглушек классов Java перед началом работы. Это небольшая динамическая оболочка среды выполнения Objective-C, которая позволяет отправлять сообщения объектам Cocoa.

Комментарии:

1. Если вы собираетесь продвигать свой собственный продукт, вам нужно включить в свой ответ отказ от ответственности, чтобы сказать об этом.

2. К сожалению, хотя он по-прежнему работает очень хорошо, его довольно сложно использовать, и методы не всегда возвращаются правильно.

Ответ №2:

Согласно этой технической записке Apple, должна быть возможность запуска JVM из вашего собственного приложения для Mac. Эта статья была первоначально написана в 2006 году, и с тех пор многое изменилось благодаря поддержке Apple Java. Тем не менее, похоже, что статья была обновлена в этом году, поэтому, возможно, она все еще поддерживается в текущих версиях ОС? Я не могу ручаться за это, но, похоже, стоит попробовать.

Комментарии:

1. Учитывая, что JVM написана на C и должна компилироваться для linux, Windows и mac os, ничего особенного в этом нет. Но тогда вам не нужен (хотя это немного упрощает) графический интерфейс в том же процессе, и там есть собственные виджеты.

2. В настоящее время я изучаю то же самое и хотел бы спросить: сработало ли это?

3. Это правда! Например, IntelliJ использует встроенную программу запуска macOS, которая инициализировала JVM!

Ответ №3:

Я не уверен, что это возможно с помощью XCode. Однако можно создавать графические интерфейсы с помощью SWT, который использует собственные виджеты.

Однако я на самом деле не создаю приложения с графическим интерфейсом на Java, поэтому я не знаю, есть ли какие-либо разработчики GUI, которые используют SWT, хотя, похоже, WindowBuilder Pro для Eclipse использует.

Комментарии:

1. WindowBuilder — практически лучший конструктор графического интерфейса для Java, так что терять здесь нечего.

2. Да, но это все равно будет графический интерфейс на основе Java. Я хочу вызвать Java-код из собственного графического интерфейса, не возясь с SWT, Swing или чем-то еще; возможно ли это?

Ответ №4:

Вы можете вызвать практически любой API Cocoa через rococoa, хотя это не обязательно будет быстрым или чистым.