我有一个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)
对此有任何帮助将非常感激。
答案 0 :(得分:2)
我能够解决这个问题。在命令行和ide中运行的JRE都是相同的。但是,当Maven构建时,那就是指向64位JRE。我把所有东西都指向了32位,然后才有效。同样,当我把所有东西都指向64位时,它就可以了。!!谢谢大家。
答案 1 :(得分:1)
请从JRE
和Eclipse
Command Line
版本
我猜从命令行运行jar时使用的JRE
是32-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版本。