1

有人能告诉我在哪里可以找到可执行的“java_swt”吗?

我看到多个站点说它嵌入在 eclipse 中,而其他站点则说它附带 Mac swt drop。我有一个名为“swt-3.5M6-carbon-macosx.zip”的 mac 的 zip 文件,并且我在我的测试 mac 机器和 windows 机器上安装了 eclipse IDE。但是我找不到这个可执行文件,我需要在 mac os x 上顺利运行 swt 应用程序。

任何帮助,将不胜感激。谢谢。

4

3 回答 3

1

我没有寻找这个 java_swt,而是将应用程序包启动的 bash 可执行文件更改为直接引用我的 Jar 文件。swt jar 与我的应用程序 jar 以及 dll 文件夹下的 jni 库捆绑在一起。文件夹结构为:

|目录
    信息列表
    包信息
    |MacOS
        bashExec
    |资源
        myApp.icns
        |爪哇
            |dll
                libswt-carbon-xxxx.jnilib
                libswt-pi-carbon-xxxx.jnilib
            我的应用程序.jar
            swt.jar

bash shell 非常基础,通过“-XstartOnFirstThread”调用解决了 swt 和 mac 之间的线程问题。这是 bash shell(井号不显示在第一行的“!”之前):

#!/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"
于 2009-06-02T17:05:14.853 回答
0

SWT 作为工具包存在。我是否可以建议您获得 Eclipse 的 RCP 版本 - 可能会让您的生活更轻松一些

于 2009-06-04T16:13:41.003 回答
0

我不知道这个“java_swt”是什么,我认为 Eclipse 目前还没有发布这样的东西。SWT 常见问题解答可能会有所帮助。

如果你只是运行普通的 java + swt,你可能仍然可以使用 eclipse 可执行文件。您将需要一个包含指定Main-Class标头的清单的 jar。同样,除了普通的静态 main 方法之外,您还需要一个非静态的 run 方法(这是可执行文件实际调用的方法):

int run(String [] args);

由于您没有正常的 Eclipse 布局,您将需要 Eclipse 启动器共享库(通常在 plugins/org.eclipse.equinox.launcher.<ws>.<os>.<arch>/eclipse_1206.so 中)。

此外,由于您的 jar 不包含用于处理启动屏幕的 Equinox 类,您可能应该明确将其关闭。

命令行将类似于:

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

您可以将这些命令行参数放入可执行文件旁边的 eclipse.ini 中,每个参数位于单独的行中。如果重命名可执行文件,请重命名 .ini 以匹配。

于 2009-06-02T15:23:12.313 回答