代码签名后可执行文件停止工作

问题描述 投票:0回答:1

我已经使用 Launch4J 为 Java 应用程序构建了一个可执行文件。我在可执行文件中嵌入了 JRE 和 Uber Jar。可执行文件有效。

但是,在我使用 signtool 对可执行文件执行代码签名后,它停止工作。这是我用来签署可执行文件的命令:

signtool sign /td sha1 /fd sha1 /f my_certificate.pfx /p mypass myexecutable.exe

这是对话框中显示的错误:

Java Virtual Machine Launcher
Error: Invalid or corrupt jarfile

为什么我的可执行文件在代码签名后停止工作?

java windows code-signing launch4j signtool
1个回答
0
投票

这是签名由 launch4j 生成的文件时的一个已知问题。解决方法是在 launch4j 配置中指定主类,而不是依赖清单中带有 Main-Class 属性的可执行 jar:

<classPath>
  <mainClass>org.acme.Main</mainClass>
</classPath>

有关更多信息,请参阅https://github.com/ebourg/jsign/issues/80

© www.soinside.com 2019 - 2024. All rights reserved.