Java_swt в затмении - PullRequest
1 голос
/ 02 июня 2009

Может кто-нибудь сказать мне, где я могу найти исполняемый файл "java_swt"?

Я вижу несколько сайтов, которые говорят, что оно встроено в Eclipse, а другие сайты говорят, что оно поставляется с Mac Swt Drop. У меня есть zip-файл для Mac с именем «swt-3.5M6-carbon-macosx.zip», и у меня установлена ​​eclipse IDE на моей тестовой машине Mac и Windows. Но я не могу найти этот исполняемый файл, который мне нужен, чтобы гладко запустить приложение SWT на Mac OS X.

Любая помощь будет оценена. Спасибо.

Ответы [ 3 ]

1 голос
/ 02 июня 2009

Вместо того, чтобы искать этот java_swt, я вместо этого изменил свой исполняемый bash, запускаемый комплектом приложений, на прямые ссылки на мой файл Jar. Jar-файл swt находится в комплекте с jar моего приложения, а также библиотеками jni в папке dll. структура папок:

|Contents
    Info.plist
    PkgInfo
    |MacOS
        bashExec
    |Resources
        myApp.icns
        |Java
            |dll
                libswt-carbon-xxxx.jnilib
                libswt-pi-carbon-xxxx.jnilib
            myApp.jar
            swt.jar

Оболочка bash довольно проста и решает проблему потоков между swt и mac с помощью вызова -XstartOnFirstThread. Вот оболочка bash (знак фунта не отображается в первой строке перед '!'):

#!/bin/sh

BASEDIR='dirname "$0"'

exec java \
-XstartOnFirstThread \
-Dorg.eclipse.swt.internal.carbon.smallFonts \
-Dorg.eclipse.swt.internal.carbon.noFocusRing \
-jar "$BASEDIR/../Resources/Java/myApp.jar"
0 голосов
/ 04 июня 2009

SWT существует в качестве инструментария. Могу ли я предложить вам версию Eclipse для RCP - может сделать вашу жизнь немного проще

0 голосов
/ 02 июня 2009

Я не знаю, что это за java_swt, я не думаю, что Eclipse в настоящее время выпускает такую ​​вещь. SWT FAQ может помочь.

Если вы просто используете обычный Java + SWT, вы, вероятно, все еще можете использовать исполняемый файл eclipse. Вам понадобится баночка с манифестом, указывающим заголовок Main-Class . Кроме того, в дополнение к обычному статическому методу main вам понадобится нестатический метод run (это то, что исполняемый файл будет фактически вызывать):

int run(String [] args);

Поскольку у вас не будет нормального макета eclipse, вам понадобится общая библиотека eclipse launcher (обычно это plugins / org.eclipse.equinox.launcher. . . / eclipse_1206.so ).

Кроме того, поскольку ваш jar не будет содержать классы равноденствия для обработки заставки, вам, вероятно, следует явно отключить это.

Командная строка будет выглядеть примерно так:

eclipse -nosplash --launcher.library eclipse_1206.so -startup my_program.jar

Вы можете поместить эти аргументы командной строки в eclipse.ini рядом с исполняемым файлом, каждый аргумент идет в отдельной строке. Если вы переименуете исполняемый файл, переименуйте INI для соответствия.

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