[Java] [Microsoft] Beachten Sie Folgendes, wenn Sie den SQL Server-JDBC-Treiber in eine JAR-Datei aufnehmen

Erste Stufe

Maven Shade Plugin Das ist praktisch. Sie können das Programm mit einer einzelnen JAR-Datei starten, ohne einen langen Klassenpfad zu schreiben.

Es geschah, als ich versuchte, den JDBC-Treiber von Microsoft SQL Server in eine solche JAR-Datei zu schreiben.

Was ich getan habe

Was ist passiert

Als ich es ausführte, schlug es mit diesem Fehler fehl.

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 

Personen mit demselben Problem → https://social.msdn.microsoft.com/Forums/sqlserver/en-US/f5c69fee-8c68-4601-bfcb-376e21dfa809/sql-server-jdbc-javalangsecurityexception-invalid-signature-file- Digest? Forum = sqldataaccess

Ursache

Liegt es daran, dass sich die Signatur in sqljdbc4.jar befindet? ↑ Ich verstehe überhaupt nicht.

Lösung

Fügen Sie die in sqljdbc4.jar enthaltene Signaturdatei (?) Nicht in das endgültige Glas ein.

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)

Einer nach dem anderen

Sie müssen verstehen, wie Java JAR-Dateien verarbeitet und ausführt. .. ..

Recommended Posts

[Java] [Microsoft] Beachten Sie Folgendes, wenn Sie den SQL Server-JDBC-Treiber in eine JAR-Datei aufnehmen
Dinge, die Sie beim Schreiben von Code in Java beachten sollten
Dinge, die Sie beim Schreiben von Java beachten sollten
[Java] Dinge, die Sie bei der Ausgabe von FizzBuzz beachten sollten
Fassen Sie den Lebenszyklus von Java-Objekten zusammen, die bei der Android-Entwicklung berücksichtigt werden müssen
Bedingte Verzweigung des Ergebnisses einer SQL-Anweisung, die nur eine in Java durchsucht
[Java] [SQL Server] Stellen Sie mit JDBC für SQL Server eine Verbindung zum lokalen SQL Server 2017 her
[Java Silver] Hinweise zu switch-Anweisungen
So erhöhen Sie den Wert von Map in einer Zeile in Java
Ist es für den Benutzer einfach, Allzweckfunktionen zu implementieren? Seien wir uns dessen bewusst
So ermitteln Sie die Gesamtzahl der Seiten beim Paging in Java
Beispielcode zum Abrufen der wichtigsten SQL-Typwerte in Java + MySQL 8.0
Wenn Eclipse den Server nicht starten kann
Punkte, die bei Java beachtet werden müssen, sind gleich
So erhalten Sie den Klassennamen des Arguments von LoggerFactory.getLogger, wenn Sie SLF4J in Java verwenden
Zusammenfassung der Verwendung des im IE festgelegten Proxy-Sets bei der Verbindung mit Java
[Java] Holen Sie sich die Datei unabhängig von der Umgebung in das JAR
"Die Sprachunterstützung für Java-Server ist in den letzten 3 Minuten fünfmal abgestürzt. Der Server wird nicht neu gestartet."
Beispielcode zum Abrufen der Werte der wichtigsten SQL-Typen in Java + Oracle Database 12c
So leiten Sie den letzten Tag des Monats in Java ab
[Rails] Bei der Beschreibung der Validierung ist Vorsicht geboten
Stellen Sie sicher, dass Sie das Java compareTo-Ergebnis mit 0 vergleichen
Wiedereinführung in Java for Humanities 0: Den Akt der Programmierung verstehen
Korrigieren Sie den Namen der Kriegsdatei auf den in Maven festgelegten
Die in /lib/calendars.properties von Java jre festgelegte Millisekunde ist UTC
Beurteilen Sie, ob die zu vergleichenden Zeichenfolgen in Java identisch sind
So beheben Sie den unbekannten Fehler, der bei der Verwendung von slf4j in Java aufgetreten ist
So überprüfen Sie den Inhalt der Java-Zeichenfolge mit fester Länge
Untersuchungsmethode, wenn die CPU des Servers, auf dem Java ausgeführt wird, schwer ist
So ermitteln Sie die Länge einer Audiodatei mit Java
[Java] Äquivalenzvergleich, bei dem Anfänger beim Vergleich von Zeichenfolgen fehlschlagen. Möglicherweise sind Sie sich des Fehlers nicht einmal bewusst! ??
Das erste, was Sie tun müssen, wenn Sie mit Heroku auf GitHub mit Eclipse auf Java zufrieden sein möchten