Не удалось найти или загрузить основной класс с помощью сгенерированного Gradle файла JAR - PullRequest
0 голосов
/ 05 мая 2019

Я застрял на этом этапе в течение нескольких часов и не могу понять, что мне не хватает. Может быть, кто-то видит очевидную ошибку ...

На первом этапе я создаю файл jar с помощью gradle:

jar {
    manifest {
        attributes(
                'Main-Class': 'ch.hsr.ebos.offliss.server.Main',
                "Class-Path": configurations.compile.collect { it.getName() }.join(' ')
        )
    }
    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    }
}

Я позволил gradle собрать файл jar, и при попытке его запустить появляется следующее сообщение об ошибке:

java -jar build/libs/server.jar 
Error: Could not find or load main class ch.hsr.ebos.offliss.server.Main

Когда вы распаковываете содержимое файла jar, появляется META-INF / MANIFEST.MF :

Manifest-Version: 1.0
Class-Path: 
Main-Class: ch.hsr.ebos.offliss.server.Main

и файл Main.class в каталоге ch / hsr / ebos / offliss / server .

Не уверен, что пропало, и понятия не имею, идти дальше. Ошибка довольно распространена при переполнении стека, но другие вопросы и ответы мне пока не помогли.

Весь исходный код с открытым исходным кодом и доступен здесь:

1 Ответ

0 голосов
/ 07 мая 2019

Наконец-то исправлена ​​ошибка, изменив конфигурацию сборки gradle на:


jar {
    manifest {
        attributes(
                'Main-Class': 'ch.hsr.ebos.offliss.server.Main'
        )
    }
}


task fatJar(type: Jar) {
    manifest.from jar.manifest
    classifier = 'all'
    from {
        configurations.runtimeClasspath.collect { it.isDirectory() ? it : zipTree(it) }
    } {
        exclude "META-INF/*.SF"
        exclude "META-INF/*.DSA"
        exclude "META-INF/*.RSA"
    }
    with jar
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...