我在线程中有一个例外;“主要”;java.lang.SecurityException:清单主属性的签名文件摘要无效
我是科特林的新手,仍然不了解一切。我正试图在.jar中构建一个项目,但迄今为止没有成功。我找到了许多解决方案,并尝试了所有的方法 但每次出现相同的错误时:我在线程中有一个例外;“主要”;java.lang.SecurityException:清单主属性的签名文件摘要无效,java,maven,kotlin,build,pom.xml,Java,Maven,Kotlin,Build,Pom.xml,我是科特林的新手,仍然不了解一切。我正试图在.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
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
我的maven构建:
<build>
<sourceDirectory>${project.basedir}/src/main/kotlin</sourceDirectory>
<plugins>
<plugin>
<groupId>org.jetbrains.kotlin</groupId>
<artifactId>kotlin-maven-plugin</artifactId>
<version>${kotlin.version}</version>
<executions>
<execution>
<id>compile</id>
<goals>
<goal>compile</goal>
</goals>
</execution>
<execution>
<id>test-compile</id>
<goals>
<goal>test-compile</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-jar-plugin</artifactId>
<version>3.2.0</version>
<configuration>
<archive>
<manifest>
<addClasspath>true</addClasspath>
<mainClass>io.lavr.utils.any2json.ApplicationKt</mainClass>
</manifest>
</archive>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
<version>3.2.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>shade</goal>
</goals>
</execution>
</executions>
<configuration>
<filters>
<filter>
<artifact>any2json</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
</filters>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-dependency-plugin</artifactId>
<version>2.6</version>
<executions>
<execution>
<id>unpack-dependencies</id>
<phase>package</phase>
<goals>
<goal>unpack-dependencies</goal>
</goals>
<configuration>
<excludeScope>system</excludeScope>
<excludes>META-INF/*.SF</excludes>
<excludes>META-INF/*.DSA</excludes>
<excludes>META-INF/*.RSA</excludes>
<excludeGroupIds>junit,org.mockito,org.hamcrest</excludeGroupIds>
<outputDirectory>${project.build.directory}/classes</outputDirectory>
</configuration>
</execution>
</executions>
</plugin>
然后我试着跑:
java -jar Application.jar
但我又犯了一个错误:
Error: Unable to initialize main class io.lavr.utils.any2json.ApplicationKt
Caused by: java.lang.NoClassDefFoundError: kotlin/TypeCastException
您可以使用'jar-xvf'命令列出构建jar的内容吗?它有你想要的吗?我用了:
jar-xvf target/any2json-1.0-SNAPSHOT.jar | grep ApplicationKt
Output:inflated:io/lavr/utils/any2json/ApplicationKt.class inflated:io/lavr/utils/any2json/ApplicationKt$main$1.class inflated:su/m13/lavr/ApplicationKt.class
kotlin/TypeCastException
在IDE中打开这个类,不要取出它所属的jar,然后检查它是否存在于通过maven创建的聚合jar中。
Error: Unable to initialize main class io.lavr.utils.any2json.ApplicationKt
Caused by: java.lang.NoClassDefFoundError: kotlin/TypeCastException