Plugin Maven Shade C'est pratique. Vous pouvez démarrer le programme avec un seul fichier jar sans écrire un long chemin de classe.
Cela s'est produit lorsque j'ai essayé de mettre le pilote JDBC de Microsoft SQL Server dans un tel fichier jar.
Lorsque je l'ai exécuté, il a échoué avec cette erreur.
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
Les personnes qui ont le même problème → https://social.msdn.microsoft.com/Forums/sqlserver/en-US/f5c69fee-8c68-4601-bfcb-376e21dfa809/sql-server-jdbc-javalangsecurityexception-invalid-signature-file- digest? forum = sqldataaccess
Est-ce parce que la signature est dans sqljdbc4.jar? ↑ Je ne comprends pas du tout.
N'incluez pas le fichier de signature (?) Inclus dans sqljdbc4.jar dans le fichier jar final.
pom.xml
(snip)
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-shade-plugin</artifactId>
(snip)
<configuration>
<filters>
<filter>
<artifact>*:*</artifact>
<excludes>
<exclude>META-INF/*.SF</exclude>
<exclude>META-INF/*.DSA</exclude>
<exclude>META-INF/*.RSA</exclude>
</excludes>
</filter>
(snip)
Vous devez comprendre comment Java gère et exécute les fichiers jar. .. ..
Recommended Posts