关于运行SWT程序遇到的一个错误的总结
具体的错误信息如下:
Exception in thread "main" java.lang.SecurityException: SHA1 digest error for org/eclipse/swt/widgets/Table.class at sun.security.util.ManifestEntryVerifier.verify(Unknown Source) at java.util.jar.JarVerifier.processEntry(Unknown Source) at java.util.jar.JarVerifier.update(Unknown Source) at java.util.jar.JarVerifier$VerifierStream.read(Unknown Source) at sun.misc.Resource.getBytes(Unknown Source) at java.net.URLClassLoader.defineClass(Unknown Source) at java.net.URLClassLoader.access$100(Unknown Source) at java.net.URLClassLoader$1.run(Unknown Source) 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) at com.book.TableViewer2.open(TableViewer2.java:32) at com.book.TableViewer2.main(TableViewer2.java:22)
最后发现了具体的错误原因,(在百度和Google有人提示是jar包的问题)
沿着这个思路就去找到了Table.class所在的包org.eclipse.swt.win32.win32.x86_64_3.6.1.v3655c.jar想着去网上重新下载这个包.
这里顺便说一下百度真的不行,搜索这个jar包什么都找不到(或者说不是有效的搜索信息)......
Goolge才是王道.....在Google上找到了这个网站http://www.java2s.com/(具体这个地址:http://www.java2s.com/Code/Jar/o/Downloadorgeclipseswtwin32win32x8664361v3655cjar.htm)找到了这个jar包.覆盖以前的.
重新运行就哦了.
在查找的过程中顺便知道了,manifest()这个文件的一些东西.
jar包中的有个META-INF文件夹.
这个文件夹中有:
其中MANIFEST.MF中是这个jar包中含有的各个类的SHA1(安全哈希算法(Secure Hash Algorithm)主要适用于数字签名标准 (Digital Signature Standard DSS)
SHA1有如下特性:不可以从消息摘要中复原信息;两个不同的消息不会产生同样的消息摘要。 具体SHA1的用法百度去吧.我就说这么多......)
作者:SummerChill 出处:http://www.cnblogs.com/DreamDrive/ 本博客为自己总结亦或在网上发现的技术博文的转载。 如果文中有什么错误,欢迎指出。以免更多的人被误导。 |