2017-10-21 54 views
1

J'essayais de créer un petit serveur web en utilisant spark et kotlin.Impossible d'exécuter le fichier jar. (Erreur: Impossible de trouver ou charger la classe principale co.pissarra.Mainkt)

Mais je suis bloqué à l'étape où je devrais être capable de créer un pot du projet et l'exécuter à partir de la ligne de commande. Mais je reçois l'erreur suivante sur l'exécution java -jar pissarra-core-all-1.0-SNAPSHOT.jar

Error: Could not find or load main class co.pissarra.Mainkt

J'ai essayé d'utiliser la création d'artefact IntelliJ idée sans succès, et déplacé à l'aide de pot création build.gradle. Voici le code pour le même

task fatJar(type: Jar) { 
    manifest { 
     attributes 'Implementation-Version': version, 
       'Main-Class': 'co.pissarra.Mainkt' 
    } 
    baseName = project.name + '-all' 
    from { configurations.compile.collect { it.isDirectory() ? it : zipTree(it) } } 
    with jar 
} 

Après avoir exécuté ./gradlew clean suivi ./gradlew fatJar, je suis en mesure de créer un fichier jar dans le répertoire build/libs/. Ce pot donne aussi la même erreur.

Lors de l'extraction du fichier jar, je peux voir la structure de répertoire co/pissarra/ avec le fichier Mainkt.class à l'intérieur. En outre, il a le répertoire META-INF avec MANIFEST.MF fichier dont le contenu sont les suivants

Manifest-Version: 1.0 
Implementation-Version: 1.0-SNAPSHOT 
Main-Class: co.pissarra.Mainkt 

Depuis stackoverflow ne permet de télécharger des fichiers, vous pouvez trouver le fichier jar here. Vous pouvez également créer le fichier jar à partir du projet github here.

Répondre

1

Vérifiez votre fichier MANIFEST. Le nom de la classe devrait être "MainKt" et non "Mainkt"

+0

Ouais .. Erreur idiote. Était le résoudre en utilisant le fichier java pour la classe Main au lieu d'utiliser kotlin. Merci beaucoup. –