【问题标题】:SWT application is running from Eclipse IDE, not running when I create a jar via Maven and run. Gives UnsatisfiedlinkExceptionSWT 应用程序从 Eclipse IDE 运行,当我通过 Maven 创建 jar 并运行时未运行。给出 UnsatisfiedlinkException
【发布时间】:2014-04-08 11:23:59
【问题描述】:

我有一个 SWT 应用程序,我在 pom.xml 中添加了与 SWT 相关的依赖项,然后将其构建为 maven 项目以下载它们,当我在 eclipse IDE 中运行它时,它会运行并且所有屏幕都会启动。

但是当我拿到 jar 并尝试通过命令行运行它时,它给出了 UnsatisfiedlinkError。

详细的堆栈跟踪如下。

Exception in thread "main" java.lang.UnsatisfiedLinkError: no swt-win32-3346 or
swt-win32 in swt.library.path, java.library.path or the jar file
        at org.eclipse.swt.internal.Library.loadLibrary(Library.java:219)
        at org.eclipse.swt.internal.Library.loadLibrary(Library.java:151)
        at org.eclipse.swt.internal.C.<clinit>(C.java:21)
        at org.eclipse.swt.widgets.Display.<clinit>(Display.java:126)

我们将不胜感激任何有关这方面的帮助。

【问题讨论】:

标签: java eclipse maven build swt


【解决方案1】:

我能够解决这个问题。在命令行和 ide 中运行的 JRE 都是相同的。但是在构建 Maven 时,它指向的是 64 位 JRE。我把所有东西都指向 32 位然后它工作了。同样,当我将所有内容都指向 64 位时,它可以工作。!!谢谢大家。

【讨论】:

    【解决方案2】:

    请检查EclipseCommand Line运行应用程序时使用的JRE的版本

    我猜从命令行运行 jar 时使用的 JRE32-bit

    【讨论】:

      【解决方案3】:

      正如例外所说:

      no swt-win32-3346 or
      swt-win32 in swt.library.path, java.library.path or the jar file
      

      您必须在这些目录之一中拥有 swt 库。

      【讨论】:

      • 对不起,我没听明白。在我的 jar 中,如果我提取,我会看到 swt dll 存在。这还不够吗?
      【解决方案4】:

      即使您为 SWT jar 库支持链接了哪个位 jar 也很重要,推荐的一个是将 OS、JVM 和 Jar 全部用于 64 或 32 位对齐的所有相同 OS 位版本。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-12-22
        • 2020-12-02
        • 2017-01-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-03-06
        相关资源
        最近更新 更多