Я создал проект Netbeans Gradle и пытаюсь найти лучший способ экспортировать его в файл .jar, чтобы его можно было открыть из-за пределов IDE. Я использую зависимости в своем проекте и получаю java .lang.NoClassDefFoundError.
Чтобы решить эту проблему, я попытался добавить
jar {
manifest {
attributes "Main-Class": "CollegeCounselor.Main"
}
from{
configurations.compile.collect{ it.isDirectory() ? it : zipTree(it)}
}
}
в мой файл build.gradle. Однако это привело к возникновению java .lang.SecurityException: неверный дайджест файла подписи для основных атрибутов манифеста.
Чтобы исправить это, я нашел предложение добавить
{exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA'}
в мой файл , Это устраняет проблему запуска файла через командную строку. Запуск через java -jar
теперь работает. Тем не менее, я все еще не могу запустить его через Finder на моей ма c. Он выдает ошибку, в которой говорится, что jar java не может быть запущен, и просит проверить консоль для более подробной информации. Я не могу понять, как решить проблему или почему я могу запустить ее через командную строку, но не через окно поиска. Я иду по пути build / libs / file.jar и пытаюсь открыть этот файл.
Любая помощь, касающаяся лучшего способа экспорта этого проекта, будет принята с благодарностью.
Вот мой полный файл build.gradle:
apply plugin: 'java'
apply plugin: 'jacoco'
apply plugin: 'application'
mainClassName = 'CollegeCounselor.Main'
repositories {
jcenter()
}
dependencies {
testCompile 'junit:junit:4.12'
compile('com.microsoft.graph:microsoft-graph:1.5.+')
compile group: 'com.microsoft.azure', name: 'msal4j', version: '1.4.0'
compile group: 'org.slf4j', name: 'slf4j-log4j12', version: '1.7.25'
}
jar {
manifest {
attributes "Main-Class": "CollegeCounselor.Main"
}
from { (configurations.runtime).collect { it.isDirectory() ? it : zipTree(it) } }
{
exclude 'META-INF/*.RSA', 'META-INF/*.SF', 'META-INF/*.DSA'
}
}