Maven打包报错:Perhaps you are running on a JRE rather than a JDK?

在这里插入图片描述

原因是eclipse默认在JRE运行,maven打包需要JDK编译器
1、点击eclipse的Window-Preferences
在这里插入图片描述
2、在Preferences窗口中点击Java-Installed JREs-Add来添加所需要的JDK
在这里插入图片描述
在这里插入图片描述
3、点击Directory
在这里插入图片描述
找到本机的JDK根目录并选择添加
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
4、依旧打开eclipse的Window-Preferences-Java-Installed JREs-Execution Environments-JavaSE-1.8(根据自己的需求来选择,小弟我修改了1.7和1.8),选择jdk打勾, 最后应用并退出
在这里插入图片描述

5、Maven打包成功
在这里插入图片描述
中途小弟修改完上面的配置打包依然有几处错误
在这里插入图片描述
其实图中报错并不是重点,检查后发现每次右击项目-Maven-Update Project后,JRE System Library总会修改为默认的J2SE-1.5,如图:(可按照小弟Maven打包的pom文件配置来解决,在下面)
在这里插入图片描述
然后打包的时候还出现过:编码GBK的不可映射字符,原因是Maven打包默认按照GBK编码来打包,而我的代码是utf-8的编码格式,所以需要在pom文件中配置编码格式来修改为utf8。(一定要注意代码的编码格式,小弟因为把项目的编码从GBK设置为utf-8导致代码中有很多中文乱码,打包一直报:编码UTF8的不可映射字符)(可按照小弟Maven打包的pom文件配置来解决)
小弟的maven打包pom文件配置如下,请大家参考:

<build>
<plugins>
<plugin>
      <groupId>org.apache.maven.plugins</groupId>
      <artifactId>maven-jar-plugin</artifactId>
      <version>2.6</version>
      <configuration>
        <archive>
             <!-- 生成的jar中,不要包含pom.xml和pom.properties这两个文件-->
          <addMavenDescriptor>false</addMavenDescriptor>
          <manifest>
               <!-- 是否要把第三方jar放到manifest的classpath中-->
            <addClasspath>true</addClasspath>
              <!-- 生成的manifest中classpath的前缀,因为要把第三方jar放到lib目录下,所以classpath的前缀是lib/-->
            <classpathPrefix>lib/</classpathPrefix>
                <!--应用的main class,例如com.csdn.maven.mainclass-->
            <mainClass>com.*.*</mainClass>
          </manifest>
        </archive>
           <!-- 过滤掉不希望包含在jar中的文件-->
        <excludes>
          <exclude>${project.basedir}/xml/*</exclude>
        </excludes>
     </configuration>
 </plugin>
 <plugin>  
     <groupId>org.apache.maven.plugins</groupId>  
     <artifactId>maven-dependency-plugin</artifactId>  
     <version>2.10</version>  
        <executions>  
           <execution>  	
              <id>copy-dependencies</id>  
              <phase>package</phase>  
              <goals>  
              	<goal>copy-dependencies</goal>  
              </goals>  
                  <configuration>  
                        <outputDirectory>${project.build.directory}/lib</outputDirectory>  
                  </configuration>  
            </execution>  
         </executions>  
</plugin>   
<plugin>
	<groupId>org.apache.maven.plugins</groupId>
	<artifactId>maven-compiler-plugin</artifactId>
	<version>3.6.2</version>
	<configuration>
	<!--配置jdk版本,对应上述问题:Update Project后修改为默认的J2SE-1.5-->
		<source>1.8</source>
		<target>1.8</target>
	<!--配置Maven打包的编码格式为utf8,对应上面的问题:编码GBK的不可映射字符-->
		<encoding>utf8</encoding>
	</configuration>
</plugin>
</plugins>
</build> 

至此,困扰小弟很久的maven打包问题终于解决了,希望帮到大家


版权声明:本文为qq_39141063原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。