相关疑难解决方法(0)

尝试运行.jar时"无效的签名文件"

我的java程序打包在一个jar文件中,并使用外部jar库,bouncy castle.我的代码编译得很好,但是运行jar会导致以下错误:

线程"main"中的异常java.lang.SecurityException:Manifest主要属性的签名文件摘要无效

我用谷歌搜索了一个多小时寻找解释,发现很少有价值.如果有人以前看过这个错误并且可以提供一些帮助,我将不得不承担责任.

java jar executable-jar

434
推荐指数
11
解决办法
23万
查看次数

如何在Eclipse中创建可运行的JAR,就像在Eclipse中一样

我从使用Eclipse的许多库的项目创建可运行JAR的过程已经完成.

导出> Runnable JAR>选择启动配置>将所需的库打包到生成的JAR>完成

这会在我的导出目标中创建一个JAR,我将其FTP到我的服务器并运行正常.

我最近因各种原因切换到IntelliJ,除了构建我的JAR之外,它在所有情况下都有所改进,这迫使我暂时回到日食.

使用IntelliJ I:

打开项目结构>工件,并从具有依赖项的模块创建新的JAR.然后,我的输出布局包含JAR的名称,其中的META-INF以及所有格式的库Extracted <lib.jar/>(抱歉,我无法上传此VPN上的屏幕截图.)

我构建我的工件(大约大15MB)并将其FTP到我的服务器,尝试运行它,我得到错误:

Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
Run Code Online (Sandbox Code Playgroud)

我如何模仿我在Eclipse中的表现?

编辑

创建的两个JAR差异很大:

Eclipse创建的有效jar看起来像这样: 好罐子

而无效的.JAR看起来像这样: 坏罐子

java eclipse intellij-idea

27
推荐指数
2
解决办法
4万
查看次数

JavaFX项目的有效JAR签名

我一直在使用各种配方来使用Maven POM 为JavaFX项目生成可运行的JAR文件.这些Stackoverflow问题中的每一个都描述了同样的问题.令人沮丧的是,针对同一目标似乎有几种不同的解决方案.

问题:

java.lang.SecurityException:Manifest主要属性的签名文件摘要无效

在命令行上执行JAR文件时出错.虽然Netbeans可以愉快地运行程序并调试程序.

诊断

有关于此的几个Stackoverflow和论坛问题(下面最有用的).尽管已知问题,但我还没有找到一个与JavaFX一起使用的明确解决方案.这些答案中描述的过程不是用于捆绑JavaFX JAR 的JavaFxPackager工具:

通常的方法:这个问题的帖子流行答案(撰写本文时为255票):在我们的项目中使用 -JavaFX模块:

但是,当我们将相同的插件放在构建JavaFX JAR文件的POM中时,我们仍然得到:" 无效的签名文件摘要 ..."错误.具体来说,我<artifactId>maven-shade-plugin</artifactId>在JavaFxPackager exec规则之前和之后放置了第一个.结果是

  • Maven给出:" Manifest主要属性的无效签名文件摘要 ......"错误

**题*:

如何管理JavaFX应用程序.这是<build> sectionJavaFX 的POM Netbeans设置:

      <build>
          <resources>
             <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
             </resource>
          </resources>

          <plugins>
             <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-dependency-plugin</artifactId>
                  <version>2.8</version>
                  <executions>
                      <execution>
                          <id>unpack-dependencies</id>
                          <phase>package</phase>
                          <goals>
                              <goal>unpack-dependencies</goal>
                          </goals>
                          <configuration>
                              <excludeScope>system</excludeScope>
                              <excludeGroupIds>junit,org.mockito,org.hamcrest</excludeGroupIds>
                              <outputDirectory>${project.build.directory}/classes</outputDirectory>
                          </configuration>
                      </execution>
                  </executions>
              </plugin>

              <plugin>
                  <groupId>org.codehaus.mojo</groupId>
                  <artifactId>exec-maven-plugin</artifactId>
                  <version>1.3.2</version>
                  <executions>
                      <execution>
                          <id>unpack-dependencies</id>
                          <phase>package</phase>
                          <goals>
                              <goal>exec</goal>
                          </goals> …
Run Code Online (Sandbox Code Playgroud)

java netbeans maven-3 maven javafx-2

11
推荐指数
1
解决办法
8723
查看次数

IntelliJ Jar 错误:清单主要属性的签名文件摘要无效

我在一个系统上使用IntelliJIDE armx64 linux-based,我正在处理一个非 Maven java 项目,该项目有很多链接到它的模块(依赖项)。当从 IDE 运行我的项目时,一切正常,但是当将其构建为可运行的 jar 文件并尝试使用从终端运行该 jar 时java -jar myjar.jar,我收到以下错误:

Error: A JNI error has occurred, please check your installation and try again
Exception in thread "main" java.lang.SecurityException: Invalid signature file digest for Manifest main attributes
    at sun.security.util.SignatureFileVerifier.processImpl(SignatureFileVerifier.java:330)
    at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:263)
    at java.util.jar.JarVerifier.processEntry(JarVerifier.java:318)
    at java.util.jar.JarVerifier.update(JarVerifier.java:230)
    at java.util.jar.JarFile.initializeVerifier(JarFile.java:383)
    at java.util.jar.JarFile.getInputStream(JarFile.java:450)
    at sun.misc.URLClassPath$JarLoader$2.getInputStream(URLClassPath.java:977)
    at sun.misc.Resource.cachedInputStream(Resource.java:77)
    at sun.misc.Resource.getByteBuffer(Resource.java:160)
    at java.net.URLClassLoader.defineClass(URLClassLoader.java:454)
    at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
    at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
    at …
Run Code Online (Sandbox Code Playgroud)

java jar intellij-idea executable-jar java-8

3
推荐指数
1
解决办法
1万
查看次数

故障安全错误:使用阴影插件时“清单主要属性的签名文件摘要无效”

在 maven 中使用 shade-plugin 并稍后尝试使用 failsafe-plugin 运行集成测试时,当故障安全即将运行时,我收到以下错误,导致我的集成测试被跳过:

[ERROR] Invalid signature file digest for Manifest main attributes
Run Code Online (Sandbox Code Playgroud)

此错误似乎是由依赖项中的签名 jar 引起的。这个答案建议使用依赖插件过滤掉签名,但它似乎对我不起作用。Shade-plugin 只是解压了所有的依赖,并没有解决问题。我怎样才能使这项工作?

jar maven maven-failsafe-plugin maven-shade-plugin

3
推荐指数
1
解决办法
503
查看次数