Конечно, я могу подробнее остановиться на этом.
Диспетчер процессов начинается с предположения, что все приложения, которые представляют пользовательский интерфейс в Mac OS X, упакованы в папку с именем Application.app,Двоичный файл в Contents / MacOS / Application, и, самое главное, имеет Info.plist для получения таких вещей, как имя приложения, которое будет отображаться в меню приложения.Когда вы запускаете приложение Java из командной строки (Swing или SWT), Info.plist не существует, поэтому нам пришлось создать CFDictionary для передачи частному SPI, который бы регистрировал приложение, присвоив ему правильное имя вDock - в отличие от просто 'java' - и может быть принудительно завершен.
Даже в этом случае он не идеален, поскольку Dock также предполагает, что он может сохранять псевдоним для связанного приложения, когда вынажмите и выберите Keep In Dock, но так как нет ни одной, которая не работает без уведомления.Нет способа сохранить ярлык или командную строку для запуска приложения, как это может сделать Windows.
SWT просто вызывает TransformProcessType, который является началом, но его далеко не достаточно, чтобы превратить приложение Java в полноценное приложение пользовательского интерфейса.Для проведения чистого тестирования и разработки SWT достаточно, чтобы вы начали.Когда вы создаете приложение на основе Eclipse RCP для развертывания, вы получаете комплексное приложение с панелью запуска Eclipse, плагинами и функциями, и вы готовы к работе.
Конечно, если вы пойдете на дополнительныеи упаковывать ваше Java-приложение в пакет, это все спорный вопрос, но подавляющее большинство разработчиков с других платформ не беспокоятся и просто хотят запустить исполняемый файл JAR или даже папку файлов классов со сценарием оболочки.