前提是在开发工具中能正常运行,maven打包后无法运行。
打包后,进入打包文件路径
在dos下输出
java -version
显示jdk版本后,再
java -jar xxxx.jar
xxxx为你打包后的jar名称
解决办法有
1 在maven的pom.xml文件中,增加以下依赖
<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.0.3.RELEASE</version> </parent>
2 如果是eclipse中 还要指定jdk版本, IDEA开发工具中不用指定jdk版本,但是建议 代码编译时的JDK版本与运行时保持版本一致。
<properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding> <java.version>1.8</java.version> </properties>
3 检查是否有maven插件依赖,和检查 开发工具中的maven是否配置正确。
在pom.xml中
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
4 检查打包后,检查 是否将配置文件和依赖的jar文件 同时打包。
Idea 中将 包含 配置文件的文件夹
右键文件 Mark Directory as --> Test Resources Root
eclipse 除了将 包含配置文件的文件夹 Build Path ---> Use as Source Folder 之外
在pom.xml中,增加以下配置,确保将配置文件也同时打包。
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> <resources> <resource> <directory>src/main/java/resources</directory> <includes> <!--包含文件夹以及子文件夹下所有资源--> <include>**/*.*</include> </includes> </resource> </resources> </build>
如果以上问题都排查无误后,在成功打包后,仍然无法正常运行
如果出现以下异常
Exception in thread "main" java.lang.IllegalAccessException: Class org.springframework.boot.loader.MainMethodRunner can not access a member of class 你的springboot主函数入口类 with modifiers "public static"那么 说明 你的主函数入口类 没有 public 修饰我的问题就是 主函数入口类 的修饰符 没加public 在 开发工具中 可以正常运行, 打包后 不能正常运行。做个记录,分享给有缘人。
转载于:https://www.cnblogs.com/javahepeng/p/11162710.html