Мне в моем приложении надо уметь общаться и с postgresql и c mssql.
В начале приложение обращается k postgre, потом уже к mssql.
Пытаюсь сделать fat jar с помощью gradle :
dependencies {
compile group: 'org.postgresql', name: 'postgresql', version: '42.1.4'
compile group: 'com.microsoft.sqlserver',name: 'mssql-jdbc', version: '6.4.0.jre8'
}
jar {
manifest {
'Main-class' : 'my.package.Main',
'Class-Path' : '.'
}
from configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }
}
При попытке запуска jar файла пишет следующее :
java -jar myApp.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(SignatureFileVerifier.java:330)
at sun.security.util.SignatureFileVerifier.process(SignatureFileVerifier.java:263)
at java.util.jar.JarVerifier.processEntry(JarVerifier.java:275)
Почитал в интернете, пишут что надо удалить сертификаты из jar файла. Переписал таск jar таким образом :
from (configurations.compile.collect { it.isDirectory() ? it : zipTree(it) }) {
exclude 'META-INF/*.SF'
exclude 'META-INF/*.DSA'
exclude 'META-INF/*.RSA'
}
При запуске уже ошибка, что не может найтись драйвер для postgre :
java.sql.SQLException: No suitable driver found for jdbc:postgresql://localhost:5432/my-database
at java.sql.DriverManager.getConnection(DriverManager.java:689)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
at my.package.Main.getConnection(Main.java:146)
Как мне сделать так, чтобы у меня внутри jar были оба драйвера и я мог общаться и с postgre и c mssql?
В общем, решением стало следующее ( : 1. Убрать зависимости от драйверов конфиге
dependencies {
}
jdbc драйвера рядомЗапускать собранный jar с указанием classpath'a :
java -cp myApp.jar:postgresDriver.jar:mssqlDriver.jar my.app.Main
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости