SWT Развертывание как EXE - PullRequest
       27

SWT Развертывание как EXE

3 голосов
/ 16 декабря 2009

Я недавно начал изучать SWT (точнее, в классе № 4) из-за требований бизнеса, а ранее я занимался разработкой Swing в течение 2 лет.

Мы развернули приложения Swing в виде jar-файлов с зависимостями от ресурсов. Что такое развертываемые формы и эквиваленты в SWT?

У меня есть вопросы, но так как мое обучение ведется онлайн, я нахожусь на курсе, и инструктора нет, кроме StackOverflow:

  1. Могут ли приложения SWT быть развернуты как независимые EXE-файлы? А что с «Eclipse EXE», о котором говорят люди? Означает ли это, что все выходы SWT будут EXE-файлами на основе Eclipse? Или они могут быть полностью независимыми EXE-файлами?

  2. Если ответ на 1 - да, как компилятор создает собственный исполняемый код win32? Это одна из областей, где я полностью сбит с толку. Как правило, развертываемый jar подается на виртуальную машину, которая читает манифест и выполняет свои функции, но EXE в качестве вывода? Что на самом деле за кадром?

  3. Как управляются комплекты внешних ресурсов? На момент развертывания?

  4. Поддержка интернационализации?

Спасибо.

Ответы [ 4 ]

8 голосов
/ 16 декабря 2009

Развертывание приложения SWT точно такое же, как и развертывание приложения Swing, с добавлением нескольких jar-файлов и native библиотеки. В настоящее время вы должны использовать какой-то инструмент для создания исполняемых файлов для вашего приложения Swing; этот инструмент может или не может быть компетентным также для упаковки библиотеки собственного кода. Маловероятно, что инструмент создает «собственный исполняемый код win32». Скорее, он упаковывает файлы классов Java вместе с JRE и заглушкой Windows PE.

SWT разработан как часть Eclipse. Eclipse имеет Rich Client Platform или RCP. Если вы создаете свое Java-приложение как приложение RCP, вы можете использовать инструменты Eclipse для генерации исполняемого пакета для Windows (или где-либо еще). Это , а не отдельный исполняемый файл, это каталог с исполняемым файлом в нем. Однако вам не нужно использовать Eclipse для использования SWT.

Приложение RCP должно использовать гораздо больше, чем просто SWT. Он должен быть построен как набор OSGi-пакетов, которые зависят от базовой платформы Eclipse. Если у вас есть такая вещь, запущенная в Eclipse, в Eclipse появится мастер, который создаст «исполняемый файл» Windows (каталог, содержащий ваш код в файлах JAR, много кода Eclipse в файлах JAR, JRE и заглушка PE .exe). Вы можете автоматизировать этот процесс из муравья, хотя я никогда не делал это сам. Боюсь, вам нужно будет прочитать книгу до конца, чтобы освоить все это.

Нет разницы между SWT и Swing с точки зрения ресурсов и интернационализации. Другие библиотеки, связанные с Eclipse, включают дисциплину I18N, но не ядро ​​SWT. Вы просто используете локали и файлы свойств, как в любом другом приложении Java.

2 голосов
/ 18 марта 2011

Вы можете использовать упаковщик Java в EXE, как этот http://jsmooth.sourceforge.net/. Надеюсь, это поможет.

2 голосов
/ 16 декабря 2009

SWT не основан на Eclipse, но пользовательский интерфейс Eclipse основан на SWT. Eclipse использует библиотеку SWT для рисования. Используется библиотека графического интерфейса от консорциума Eclipse, доступная для многих систем. Если вы хотите развернуть свое обычное Java-приложение с SWT GUI, просто добавьте соответствующие библиотеки и .dll или .so. Поэтому все, что вы можете сделать (развертывание) с помощью Java, соответственно, говоря на Swing, можно сделать с помощью SWT, если вы предоставите соответствующие библиотеки. Существуют инструменты и способы компилирования всего в .exe-файлы, но это не обязательно необходимо. Я не совсем понимаю, что такое Eclipse EXE, о котором вы говорите, но Eclipse просто предоставляет стартовый exe, который по сути является просто оболочкой. В противном случае некоторые люди ссылаются на Eclipse RCP или Eclipse EXE, но это не правильно. Вы МОЖЕТЕ использовать Eclipse RCP для создания своего приложения, и это будет использовать SWT в качестве библиотеки пользовательского интерфейса. Но вы можете использовать SWT самостоятельно как библиотеку без следа Eclipse.

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

0 голосов
/ 16 декабря 2009

Обычно вам нужно запустить проект с помощью обычной команды java -jar.

Затем создайте программу загрузки exe, которая запускает команду при двойном щелчке по ней.

Дополнительные действия могут быть выполнены, например, проверка версий JVM внутри программы exe.

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