我是Java环境的新手.执行Jar文件后我遇到了问题.
我正在使用Eclipse KEPLER进行Java编程.我使用File-> Export – > Runnable Jar文件导出了我的项目. jar文件已创建.当我使用Java-jar文件名启动jar时.在罐子里,我得到了一些错误,我已经附加到这些问题上了.我看了这个invalid SHA1 signature file digest并试了一下.我仍然遇到这个问题.
错误:线程“main”中的异常java.lang.SecurityException:com / microsoft / sqlserver / jdbc / SQLServerException.class的无效SHA1签名文件摘要
解决方法:
该错误意味着类路径中的一个JAR文件包含一个MANIFEST.MF,其中包含com / microsoft / sqlserver / jdbc / SQLServerException.class的条目,并且其中的SHA1校验和不匹配.
首先要检查的是JAR没有损坏.既然您可以从Eclipse内部运行项目,那么它们似乎没问题.
这导致导出的JAR.我的猜测是出口过程留下了垃圾.打开它(JAR存档是ZIP存档,因此任何ZIP工具都可以工作)并查找MANIFEST.MF文件.
其中一个包含上述条目.找到它后,将其与原始JAR中的版本进行比较.它们必须100%相同.
[编辑]选项“将所需的库提取到生成的JAR中”有一个错误:它在MANIFEST.MF中留下签名.这里的问题是签名取决于清单的确切内容.即使一个位在任何地方都发生变化,签名也会变得腐败.这是设计使然:否则,攻击者可以修改代码.
尝试“将所需的库打包到生成的JAR中”.
如果这不起作用,则必须使用最后一个选项.传递可执行项目时,请确保包含JAR和子文件夹.