cmd:No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?

我的项目是springboot进行开发,用的idea开发工具:

首先来看看我的打包配置:

<!--打war包第一步-->添加依赖:
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-tomcat</artifactId>
    <scope>provided</scope>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>javax.servlet-api</artifactId>
    <scope>provided</scope>
</dependency>


将build改成:
<build>

    <finalName>myweb</finalName><!--打war包第二步-->
    <plugins>
        <plugin> 

            <!--打war包第三步-->
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
                <failOnMissingWebXml>false</failOnMissingWebXml>
            </configuration>
        </plugin>
    </plugins>
</build>


<!--打war包第四步-->添加:
<packaging>war</packaging>


<!--打war包第五步-->主启动类需要继承个东西,并重写:
@SpringBootApplication
public class MywebApplication extends SpringBootServletInitializer {
    /**
     * 需要把web项目打成war包部署到外部tomcat运行时需要改变启动方式
     */
    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {
        return builder.sources(MywebApplication.class);
    }
 
    public static void main(String[] args) {
        SpringApplication.run(MywebApplication.class, args);
    }
 
}

我在使用cmd对项目打包的时候出现了如标题那样的错误,网上一堆乱七八糟的答案,最终还是找到了正解,我这里重新安装了jdk,错误告诉我们你确定你用的是jre而不是jdk?很明显我们要为本地maven配置能够打包的jdk,我们下载好了jdk,首先会去安装jdk,接着会按照jre,特别注意要把两者给分开出来:特别注意我们需要在环境变量去配置JAVA_HOME。

我们需要在maven bin目录下的mvn.cmd文件中添加一行设置:添加到第一行。

测试一下:使用cmd输入mvn -version命令:

我重新下载的是jdk8_241版本。可以看到jdk信息是我们下载的jdk,看来配置有效,runtime也是我们重新下载的jdk版本。

如果还是之前的jdk版本,可能就是配置出了问题,需要注意一点,我们需要将环境变量中的jdk配置上移到第一行:

好了,现在在cmd使用:mvn clean package进行打包,没有问题了。

发布了753 篇原创文章 · 获赞 72 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/qq_41723615/article/details/104874707