【发布时间】:2018-03-09 22:11:43
【问题描述】:
我有一个非常简单的 SpringBoot 应用程序:
HelloConfig.java:
@RestController
@EnableAutoConfiguration
public class HelloConfig {
@RequestMapping("/time")
public String time() {
return "time is " + System.currentTimeMillis();
}
public static void main(String[] args) {
SpringApplication.run(HelloConfig.class, args);
}
}
build.gradle:
plugins {
id 'java'
id 'eclipse'
}
dependencies {
compile 'org.springframework.boot:spring-boot-starter-web:2.0.0.RELEASE'
testCompile 'junit:junit:4.12'
}
repositories {
mavenCentral()
}
jar {
manifest {
attributes 'Main-Class': 'HelloConfig'
}
}
该应用在 Eclipse 中运行,但是当我从终端运行它时:
gradle build
java -Dserver.port=8080 -jar build/libs/*.jar
我收到以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication
at HelloConfig.main(HelloConfig.java:18)
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:335)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
如何从 unix 终端执行此应用程序?
【问题讨论】:
-
您没有应用允许创建包含所有依赖项的单个 eecutable jar 的 spring 插件,并且您正在执行仅包含您的类的 jar,而在类路径中没有所有其他依赖项。那怎么能行?与往常一样,阅读文档时总是更简单:docs.spring.io/spring-boot/docs/current/reference/htmlsingle/…。您也可以使用 start.spring.io,它会为您生成正确的构建文件。
标签: spring eclipse spring-boot exception terminal