首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何使用Maven构建SWT应用程序

如何使用Maven构建SWT应用程序
EN

Stack Overflow用户
提问于 2008-11-15 13:43:04
回答 6查看 30.2K关注 0票数 24

我试图学习swt,并且我使用maven来构建我的所有版本,使用eclipse来构建我的IDE。将swt jar从maven存储库中取出时,我得到:

代码语言:javascript
复制
Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-pi-gtk-3034 in java.library.path
    at java.lang.ClassLoader.loadLibrary(ClassLoader.java:1709)
    at java.lang.Runtime.loadLibrary0(Runtime.java:823)
    at java.lang.System.loadLibrary(System.java:1030)
    at org.eclipse.swt.internal.Library.loadLibrary(Library.java:100)
    at org.eclipse.swt.internal.gtk.OS.<clinit>(OS.java:19)
    at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:63)
    at org.eclipse.swt.internal.Converter.wcsToMbcs(Converter.java:54)
    at org.eclipse.swt.widgets.Display.<clinit>(Display.java:112)
    at wenzlick.test.swt.main.Main.main(Main.java:30)

有没有人成功地使用maven构建并运行了swt应用程序?

编辑:我做了一些研究,发现了问题所在。请看我下面的帖子

EN

回答 6

Stack Overflow用户

回答已采纳

发布于 2008-11-15 17:37:55

听起来像是Maven引入了一个旧版本的SWT。从v3.4 (以及更高版本)开始,swt.jar就是您所需要的一切。SWT会根据需要自动提取.so.jnilib.dll。您需要担心的唯一棘手的事情是确保获得正确的swt.jar (这意味着适用于您的平台)。

尝试手动在本地存储库中安装SWT 3.4。如果这仍然给你带来同样的问题,那么可能有什么问题。之后,我会尝试手动提取.so,然后在调用时使用-D开关指定java.library.path变量。有时,在Linux上,由于依赖问题(比如libpango),库的加载可能会失败。在这种情况下,错误通常只是一般的UnsatisifedLinkError,使得问题难以调试。

票数 9
EN

Stack Overflow用户

发布于 2012-04-03 07:32:42

我已经将最新SWT版本(4.2.2)的win32/64和osx工件上传到googlecode存储库,您可以在以下位置找到它:

https://swt-repo.googlecode.com/svn/repo/

要使用它,只需在您的pom.xml中添加以下内容:

代码语言:javascript
复制
<repositories>
    <repository>
        <id>swt-repo</id>
        <url>https://swt-repo.googlecode.com/svn/repo/</url>
    </repository>
</repositories>

然后,您可以只引用与您的平台相关的SWT依赖项。例如:

代码语言:javascript
复制
    <dependency>
        <groupId>org.eclipse.swt</groupId>
        <artifactId>org.eclipse.swt.win32.win32.x86</artifactId>
        <version>4.2.2</version>
    </dependency>

对于其他平台,只需将artifactId替换为适当的值:

  • org.eclipse.swt.win32.win32.x86
  • org.eclipse.swt.win32.win32.x86_64
  • org.eclipse.swt.cocoa.macosx
  • org.eclipse.swt.cocoa.macosx.x86_64

其他平台和旧版本的工件也可用,请访问上面的存储库链接以找到它们。

祝你编码愉快!

票数 19
EN

Stack Overflow用户

发布于 2013-03-19 05:27:18

自2013年以来(这一年),事情发生了变化。SWT现在发布在Maven Central上。以下是本文撰写时的坐标:

代码语言:javascript
复制
<dependency>
    <groupId>org.eclipse.platform</groupId>
    <artifactId>org.eclipse.swt.win32.win32.x86_64</artifactId>
    <version>${swt.version}</version>
</dependency>

您可能会发现这个ticket很有趣。

Windows64位最新SWT工件:https://mvnrepository.com/artifact/org.eclipse.platform/org.eclipse.swt.win32.win32.x86_64

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/292548

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档