SpringBoot打成可执行jar包运行报错ClassNotFoundException

  • A+
所属分类:SpringBoot

现象:直接在idea里点运行是没问题的,但是打成可执行jar包在命令行里用java -jar来执行就会报错ClassNotFoundException

看了下具体的找不到的类,发现是本地另一个common工程里的一个类。但是这个工程也打成了jar包在本地maven仓库啊,按理说应该是没问题的。后来百度了下springboot jar包的相关知识,发现jar包分两种,一种是可执行jar包,一种是不可执行jar包,只有不可执行jar包才能被引用其中的类。也就是说这里的common工程很可能也打成了可执行jar包,这样引用是找不到其中的类的。

找到问题所在后就简单了,修改common工程里的pom文件,注释掉

<build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>

加上如下设置即可。

<build>
     <plugins>
        <plugin>
           <groupId>org.apache.maven.plugins</groupId>
           <artifactId>maven-compiler-plugin</artifactId>
           <configuration>
              <source>1.8</source>
              <target>1.8</target>
           </configuration>
        </plugin>
     </plugins>
  </build>

 

ZPY

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: