我有一个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)
任何有关这方面的帮助将非常感激。
我能够解决这个问题。在命令行和ide中运行的JRE都是相同的。但是,当Maven构建时,那就是指向64位JRE。我把所有东西都指向了32位,然后才有效。同样,当我把所有东西都指向64位时,它就可以了。!!感谢大家。
请检查JRE
和Eclipse
运行应用程序时使用的Command Line
版本
我想从命令行运行jar时使用的JRE
是32-bit
就像例外说的那样:
no swt-win32-3346 or
swt-win32 in swt.library.path, java.library.path or the jar file
您必须在其中一个目录中拥有swt库。
即使重要的是您为SWT jar库支持链接了哪些内容,建议一个是将OS,JVM和Jar全部三个用于64或32位对齐所有相同的OS位版本。