我正在尝试编译一个开源的software。构建工作正常,并导致jar文件“five-server.jar”。当我尝试从cmd运行此文件时,我收到这些错误。
C:\Users\vickey\code\five-server\dist\main>java -jar five-server.jar
Exception in thread "main" java.lang.NoClassDefFoundError: org/eclipse/swt/SWTError
Caused by: java.lang.ClassNotFoundException: org.eclipse.swt.SWTError
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
Could not find the main class: org.devtcg.five.Main. Program will exit.
有什么问题吗?
您必须设置类路径,使其至少包含类org.eclipse.swt.SWTError或包含它的jar:
java -classpath path/to/jar/containing/org.eclipse.swt.SWTError -jar five-server.jar
您还应该在five-server.jar
中的清单文件中设置Main-class属性
SWT Jar文件取决于平台。见http://www.jarfinder.com/index.php/java/info/org.eclipse.swt.SWTError
例如在Windows上,一个合适的jar将是:org.eclipse.swt.win32.win32.x86_3.1.0.jar
或者在Mac OS X上:swt-macosx-3.0m7.jar
等等。如果添加此依赖项,您可能会遇到各种跟进问题。无论您使用的是32位还是64位库。
太糟糕了,这些依赖性问题现在更多地出现:-(
在@Wolfgang Fahl回答之后,您可以在此处下载参考资料:
标准窗口小部件工具包»4.3 x86
标准窗口小部件工具包»4.3 x64