我见过其他一些这样的人
我们将Jetty与Maven Shade插件一起用于开源应用程序:
https://github.com/OneBusAway/onebusaway-gtfs-realtime-from-nextbus-cli
我们在生成中开始出现以下错误:
$ java -jar onebusaway-gtfs-realtime-from-nextbus-cli.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(Unknown Source)
at sun.security.util.SignatureFileVerifier.process(Unknown Source)
at java.util.jar.JarVerifier.processEntry(Unknown Source)
at java.util.jar.JarVerifier.update(Unknown Source)
at java.util.jar.JarFile.initializeVerifier(Unknown Source)
at java.util.jar.JarFile.getInputStream(Unknown Source)
at sun.misc.URLClassPath$JarLoader$2.getInputStream(Unknown Source)
at sun.misc.Resource.cachedInputStream(Unknown Source)
at sun.misc.Resource.getByteBuffer(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 sun.launcher.LauncherHelper.checkAndLoadMain(Unknown Source)
以下是我们的问题追踪器上的问题:
https://github.com/OneBusAway/onebusaway-gtfs-realtime-from-nextbus-cli/issues/6
看起来这是Jetty中的一个bug:
https://bugs.eclipse.org/bugs/show_bug.cgi?id=371954
从上述错误报告中:
javax有一个问题。servlet-2.5。0.v201103041518。jetty-7.6上的罐子包装。1.v20120215依赖:在javax的META-INF目录中。servlet jar是ECLIPSEF中找到的文件。RSA和ECLIPSEF。旧金山。
如果您使用使用jetty的maven生成了一个jar,那么您会在最后一个jar的META-INF目录中得到这两个文件,如果您运行它,您会得到一个异常:
java。lang.SecurityException:清单主属性的签名文件摘要无效
修复方法是从生成的jar中排除2个有问题的文件。
通过将maven shade插件添加到POM,可以排除不需要的文件:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>1.4</version>
<executions>
<execution>
<goals>
<goal>shade</goal>
</goals>
<configuration>
<filters>
<filter>
<artifact>org.eclipse.jetty.orbit:javax.servlet</artifact>
<excludes>
<exclude>META-INF/ECLIPSEF.RSA</exclude>
<exclude>META-INF/ECLIPSEF.SF</exclude>
<exclude>META-INF/eclipse.inf</exclude>
</excludes>
</filter>
</filters>
</configuration>
</execution>
</executions>
</plugin>
添加:
<filters>
<filter>
<artifact>org.eclipse.jetty.orbit:javax.servlet</artifact>
<excludes>
<exclude>META-INF/ECLIPSEF.RSA</exclude>
<exclude>META-INF/ECLIPSEF.SF</exclude>
<exclude>META-INF/eclipse.inf</exclude>
</excludes>
</filter>
</filters>
...pom.xml为我们工作。
我有一个google cloud app engine应用程序,这个应用程序是用Java11实现的,并且可以编译它。但由于某种原因,当我将I部署到app engine上时,google无法创建此应用程序的实例。
我使用并使用相同的安装程序安装了。 java-jar“C:\ProgramFiles(x86)\HP\LeanFT\Tools\TestExportTool\test export tool.jar”“C:\LeanFT\MyTestNGTests.jar”-类路径:“C:\TestNG\TestNG.jar” 清单主属性的签名文件摘要无效 我使用从测试用例生成了工件。
我已经检查了有这个问题的其他线程,但是他们的情况和解决方案不适用于我的情况。 该程序应该在蓝牙设备和计算机之间建立连接,并且应该从所述设备接收数据。因此,我正在使用蓝牙连接所需的库,这些库本身包含清单文件。我猜想,这就是问题发生的地方。 我已经尝试使用不同的JDK,但没有成功。 以下是整个错误消息:
我正在尝试运行项目的jar文件。我正在研究intelliJ,并使用工件生成jar文件。但每次我试图运行jar文件时,它都会给我带来异常。 这是我的清单文件: 项目的外部库:
我已经通过提取jar,更改其MANIFEST. MF文件并使用命令jar cfmnew-6.0.1.jar将其转换为bundle,将jar转换为OSGI bundle。\META-INF\MANIFEST. MF.但是当我试图运行代码时,我得到了错误java.lang.Security异常:无效的签名文件摘要为清单主要属性请提供您的建议如何解决此错误。