#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, хотя это не обязательно будет быстрым или чистым.