SWT应用程序从Eclipse IDE运行,在我通过Maven创建jar并运行时不运行。给出不满意的linkException

时间:2014-04-08 11:24:00

标签: java eclipse maven build swt

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

但是当我拿着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)

对此有任何帮助将非常感激。

4 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

请从JREEclipse

检查运行应用时使用的Command Line版本

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

答案 2 :(得分:0)

就像异常所说:

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

你必须在其中一个目录中拥有swt库。

答案 3 :(得分:0)

为支持SWT jar库而链接到的哪个jar版本也很重要,建议其中之一是使OS,JVM和Jar的所有这三个64位或32位对齐所有相同的OS版本。