java.lang.NoClassDefFoundError: lorsque vous essayez d'exécuter jar
J'ai un ressort de démarrage du projet à l'aide de gradle
apply plugin: 'java'
apply plugin: 'idea'
apply plugin: 'jetty'
apply plugin: 'war'
apply plugin: 'org.springframework.boot'
repositories {
mavenCentral()
}
dependencies {
compile("org.springframework.boot:spring-boot-starter-web:1.5.1.RELEASE") {
exclude module: "spring-boot-starter-tomcat"
}
compile group: 'org.springframework.boot', name: 'spring-boot-starter-jetty', version: '1.5.1.RELEASE'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-actuator', version: '1.5.1.RELEASE'
compile group: 'org.springframework', name: 'spring-webmvc', version: '4.3.6.RELEASE'
compile group: 'org.springframework', name: 'spring-context-support', version: '4.3.6.RELEASE'
compile group: 'org.springframework', name: 'spring-orm', version: '4.3.6.RELEASE'
compile group: 'javax.servlet', name: 'javax.servlet-api', version: '3.1.0'
compile group: 'org.freemarker', name: 'freemarker', version: '2.3.23'
compile group: 'mysql', name: 'mysql-connector-java', version: '6.0.5'
compile group: 'org.hibernate', name: 'hibernate-core', version: '5.1.4.Final'
compile group: 'commons-validator', name: 'commons-validator', version: '1.5.1'
compile group: 'junit', name: 'junit', version: '4.12'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-test', version: '1.5.1.RELEASE'
}
task wrapper(type: Wrapper) {
gradleVersion = '2.2'
}
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath("org.springframework.boot:spring-boot-gradle-plugin:1.5.1.RELEASE")
}
}
jar {
baseName = 'base-name'
version = '0.1.0'
manifest {
attributes 'Main-Class': 'some.application.Application'
}
}
sourceCompatibility = 1.8
targetCompatibility = 1.8
Je construis à l'aide
./gradlew clean jar
Puis essayez d'exécuter à l'aide
java -jar <jar-name>.jar
Mais j'ai un message d'erreur indiquant
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication
at some.application.Application.main(Application.java:11)
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication
at java.net.URLClassLoader.findClass(URLClassLoader.java:381)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
Je suis tellement confus quant à pourquoi je peux le faire tourner en IDE, mais pas comme un pot. Aussi, j'ai découvert que mon pot ne contient pas toutes les bibliothèques.
EDIT:
C'est mon Application.class
emballage.demande;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application
{
public static void main(String[] args)
{
SpringApplication.run(Application.class, args);
}
}
Je voudrais comparer les chemins que l'IDE est l'utilisation et le contenu du bocal
avez-vous le springboot classe d'entrée dans votre code ?
édité question en montrant mon
Je viens de vérifier mon pot, et apparemment il ne contient pas de printemps de démarrage des pots à tous que ce soit. Ceci explique alors pourquoi il ne peut pas exécuter quoi que ce soit. Savez-vous comment je met le printemps de démarrage bocaux dans mon pot?
ce qui se passe lorsque vous ne gradle installer ? Il ne marche pas apporter dans les dépendances?
avez-vous le springboot classe d'entrée dans votre code ?
édité question en montrant mon
Application.java
. C'est ce que tu entend par ressort entrée de démarrage de classe?Je viens de vérifier mon pot, et apparemment il ne contient pas de printemps de démarrage des pots à tous que ce soit. Ceci explique alors pourquoi il ne peut pas exécuter quoi que ce soit. Savez-vous comment je met le printemps de démarrage bocaux dans mon pot?
ce qui se passe lorsque vous ne gradle installer ? Il ne marche pas apporter dans les dépendances?
OriginalL'auteur Quillion | 2017-02-25
Vous devez vous connecter pour publier un commentaire.
C'est parce que les dépendances ne sont pas inclus dans le fichier jar.
Prendre un coup d'oeil sur les exemples ici ou ici.
Ou encore utiliser
./gradlew clean build
qui devrait automatiquement le pack de l'application correctement. Prendre un coup d'oeil sur le guide officielfrom { (configurations.runtime).collect { it.isDirectory() ? it : zipTree(it) } }
a fonctionné comme un charme pour moi 🙂 merci à vous!OriginalL'auteur Oleksandr Shpota