生成jar
首先,如果使用的是maven,那么直接执行package指令就可以生成jar包,如下图:
但是,当我们使用
java -jar xx.jar运行时,会报错:
Exception in thread "main" java.lang.NoClassDefFoundError: org/springframework/boot/SpringApplication
at com.MainApplication.main(MainApplication.java:10)
Caused by: java.lang.ClassNotFoundException: org.springframework.boot.SpringApplication
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 1 more
大概的意思就是缺少依赖。
解决jar包依赖问题
通过修改pom文件,解决依赖问题。
在pom文件中添加:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
然后重新打包(package)即可。
需要注意的是,随着IDEA的升级,现在开始出现了一个新的标签pluginManagement,在这个标签里,也同样有plugins标签,但千万不要把pluginManagement中的plugins当成上文中出现的plugins标签,即下面的写法是错误的:
<build>
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</pluginManagement>
</build>