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进行打包,没有问题了。