Install4j JRE捆绑过程破坏了lib jar的SHA哈希?

奈梅什·米斯特里(Naymesh Mistry)

我正在使用Install4j 5.1.11为我的应用程序创建Windows安装程序。我需要在其中嵌入JRE版本1.7.0_72。JRE的此特定版本在Install4j J​​RE下载列表中不可用。因此,我将Install4j指向手动创建了一个包C\Program Files\Java\jdk_1.7.0_72\jreInstall4j创建一个包C:\Program Files (x86)\install4j5\jres\windows-amd64-1.7.0_72.tar.gz凉爽的。现在,在媒体文件向导中,我选择此JRE捆绑包来嵌入并构建我的安装程序。

然后,我运行内置的安装程序并安装我的应用程序。我可以看到该文件jre夹在安装主目录下已解压缩,并且具有相同的版本1.7.0_72凉爽的。因此,现在我使用exe启动器启动应用程序,该启动器将启动Tomcat并加载应用程序等,并使用嵌入式jre进行启动。对于Tomcat加载上下文时的其中一个Web应用程序(称为Fieldbook),出现以下错误:

org.apache.catalina.LifecycleException: Failed to start component [StandardEngine[Catalina].StandardHost[localhost].StandardContext[/Fieldbook]]
 at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:154)
 at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
 at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
 at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:633)
 at org.apache.catalina.startup.HostConfig.deployDirectory(HostConfig.java:1120)
 at org.apache.catalina.startup.HostConfig$DeployDirectory.run(HostConfig.java:1678)
 at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
 at java.util.concurrent.FutureTask.run(FutureTask.java:262)
 at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
 at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
 at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.SecurityException: SHA1 digest error for javax/crypto/CipherSpi.class
 at sun.security.util.ManifestEntryVerifier.verify(ManifestEntryVerifier.java:220)
 at java.util.jar.JarVerifier.processEntry(JarVerifier.java:241)
 at java.util.jar.JarVerifier.update(JarVerifier.java:228)
 at java.util.jar.JarVerifier$VerifierStream.read(JarVerifier.java:483)
 at java.io.FilterInputStream.read(FilterInputStream.java:133)
 at java.io.BufferedInputStream.fill(BufferedInputStream.java:235)
 at java.io.BufferedInputStream.read(BufferedInputStream.java:254)
 at java.io.DataInputStream.readInt(DataInputStream.java:387)
 at org.apache.tomcat.util.bcel.classfile.ClassParser.readID(ClassParser.java:237)
 at org.apache.tomcat.util.bcel.classfile.ClassParser.parse(ClassParser.java:114)
 at org.apache.catalina.startup.ContextConfig.populateJavaClassCache(ContextConfig.java:2293)

到底是怎么回事?为什么,又是如何在CipherSpi.class的SHA哈希成为从什么是在不同META-INF/MANIFEST.MFjce.jar是通常的部分jre/libS'

奈梅什·米斯特里(Naymesh Mistry)

创建JRE捆绑包时,Install4j 5.x版本适用Pack 200压缩。此压缩选项不可配置。压缩最终会修改JRE软件包的内容,从而破坏签名和摘要标记的jar文件(例如jce.jarJRE lib的一部分)。

解决方法是使用Install4j v6.x来创建JRE软件包,并取消选中新的“ Pack Jar文件”选项,从而可以禁用压缩。然后,可以在Install4j 5.x项目中使用这些捆绑软件(通过将它们放在Install4j安装的jres文件夹下)以嵌入媒体文件中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Install4j JRE捆绑过程破坏了lib jar的SHA哈希?

来自分类Dev

如何更改install4j中捆绑的JRE的位置?

来自分类Dev

install4j JRE捆绑的Linux是否不受支持?

来自分类Dev

install4J是否提供jar加密?

来自分类Dev

从 INSTALL4J .exe 获取 Jar/Java

来自分类Dev

Windows上的Install4j的JRE 8?

来自分类Dev

Mac OS X上的Install4j JRE位于.install4j / jre.bundle中

来自分类Dev

Mac OS X上的Install4j JRE位于.install4j / jre.bundle中

来自分类Dev

在Install4j中为MAC调整捆绑JRE

来自分类Dev

在Install4J的“选择捆绑包”选项中找不到JRE

来自分类Dev

如何在install4J中将javafx与JRE 14捆绑在一起?

来自分类Dev

在Install4J的“选择捆绑包”选项中找不到JRE

来自分类Dev

我怎样才能减少install4j的Linux软件包在OpenJDK 11捆绑的JRE?

来自分类Dev

哪些许可证适用于使用install4j 7创建的JRE捆绑软件?

来自分类Dev

如何隐藏或加密Install4J中包含的jar的内容

来自分类Dev

让卸载程序删除在安装过程中使用install4j下载的文件

来自分类Dev

尽管在卸载过程中未发生任何故障,但Install4j Unix GUI安装程序会激活卸载程序故障屏幕。

来自分类Dev

Is install4j jdk 8 compatible?

来自分类Dev

install4j:执行bash文件

来自分类Dev

Install4j Mac OSx签名

来自分类Dev

Install4j还原版本

来自分类Dev

Install4j:安装服务

来自分类Dev

Install4j还原版本

来自分类Dev

install4j 的代码签名错误

来自分类Dev

SQL Server验证SHA2_512哈希过程

来自分类Dev

如何使用install4j创建补丁?

来自分类Dev

使用install4j关闭OS X AppNap

来自分类Dev

在升级中测试Install4j回滚

来自分类Dev

Install4j varfile读取的变量很少

Related 相关文章

热门标签

归档