zoukankan      html  css  js  c++  java
  • maven打包springboot项目不能运行的解决办法

    前提是在开发工具中能正常运行,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


    在 开发工具中 可以正常运行, 打包后 不能正常运行。


    做个记录,分享给有缘人。


  • 相关阅读:
    H50062:meta 定义浏览器的渲染方式
    PHPJN0004:PHP文件上传被安全狗拦截处理
    APP0006- 提示弹窗
    MySQL0002:命令行操作数据库常用命令
    APP0005- data属性的定义
    CSS0018: 字体超长自动隐藏
    JS_0041:JS加载JS文件 异步同步加载js文件
    CSS0017: DIV 上下左右都居中样式
    CSS0016: 多个DIV并排均匀分布 box-sizing
    H50061:html 中引入外部 html 片段
  • 原文地址:https://www.cnblogs.com/javahepeng/p/11162710.html
Copyright © 2011-2022 走看看