我试图学习swt,我使用maven进行所有构建,并使用eclipse进行IDE.当从maven存储库中获取swt jar时,我得到:
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.(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. (Display.java:112) at wenzlick.test.swt.main.Main.main(Main.java:30)
有没有人成功获得使用maven构建和运行的swt应用程序?
编辑:我做了一点研究,发现了问题.看看我下面的帖子
我已将最新SWT版本(4.2.2)的win32/64和osx工件上传到googlecode存储库,您可以在此处找到它:
https://swt-repo.googlecode.com/svn/repo/
要使用它,只需将以下内容放在pom.xml中:
swt-repo https://swt-repo.googlecode.com/svn/repo/
然后,您可以引用与您的平台相关的SWT依赖项.例如:
org.eclipse.swt org.eclipse.swt.win32.win32.x86 4.2.2
对于其他平台,只需将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
还可以使用其他平台和旧版本的工件,访问上面的存储库链接以查找它们.
快乐的编码!
听起来Maven正在推出一个旧版本的SWT.随着V3.4(或更高版本)中,SWT.JAR是所有你需要的.SWT将根据需要自动提取.so
s,.jnilib
s或.dll
s.您需要担心的唯一棘手的事情是确保您获得正确的swt.jar(意味着您的平台).
尝试手动在本地存储库中安装SWT 3.4.如果这仍然给你带来同样的问题,那么事情可能是多么可疑.之后,我会尝试.so
手动提取s,然后java.library.path
使用-D
调用开关指定变量.有时在Linux上,由于依赖性问题(例如libpango之类的东西),库的加载可能会失败.在这种情况下,错误通常只是通用错误UnsatisifedLinkError
,使问题难以调试.