У меня есть исключение в потоке "main" java .lang.SecurityException: неверный дайджест файла подписи для основных атрибутов манифеста - PullRequest
0 голосов
/ 22 марта 2020

Я новичок в Kotlin и до сих пор не все понимаю. Я пытаюсь построить проект в .jar, но пока безуспешно. Я нашел много разных решений и перепробовал все из них

Недопустимый дайджест файла подписи для основных атрибутов Manifest с плагином Jetty и Maven Shade

"Недопустимый файл подписи "при попытке запустить .jar

Исключение в потоке" main "java .lang.SecurityException: неверный дайджест файла подписи для основных атрибутов манифеста

Действительная подпись JAR для проектов JavaFX

, но каждый раз появляется одна и та же ошибка:

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>

Пожалуйста, прости меня за мое невежество и относись с пониманием. Спасибо =)

Изменения:

собранный кувшин с такой командой:

jar cvmf src/main/kotlin/META-INF/MANIFEST.MF  Application.jar -C target/classes io/lavr/utils/any2json

Затем я попытался запустить:

java -jar Application.jar 

но у меня снова ошибка:

Error: Unable to initialize main class io.lavr.utils.any2json.ApplicationKt
Caused by: java.lang.NoClassDefFoundError: kotlin/TypeCastException

...