下面就分析下我在springboot打成war包一路上的操作和出现的问题和解决的过程。
- 使用的软件工具是:Spring Tool Suite4
- 环境:jdk1.8,Apache9.0
- 还有一点很关键:就是maven 仓库是完整的,jar包之前以前下载完了(后来才意识到…)
操作:项目名右键->maven…->install
控制台报错信息:[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK?
分析:
报错的提示已经讲得很清楚,当前运行的环境为JRE,而不是JDK,没有提供编译环境。所以解决的问题关键是将当前项目的运行环境由JRE切换为JDK即可。
步骤:
Window->Prefrences->Java->Insatalled JRE
然后将原来的jre路径换成你本地的jdk路径即可
好,解决了上面的报错信息后,再次install
又又出现问题:
控制台报错信息:
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test(default-test)on project 07-hello-world.Execution default-test of goal org.apache.maven.plugins:maven-surefire-plugin:2.22.2:test failed: Plugin org.apache.maven.plugins:maven-surefire-plugin:2.22.2 or one of its dependencies could not be resolved: The following artifacts could not be resolved: org.apache.maven.surefire:maven-surefire-common:jar:2.22.2, org.apache.maven.plugin-tools:maven-plugin-annotations:jar:3.5.2, org.apache.maven.surefire:surefire-api:jar:2.22.2, org.apache.maven.surefire:surefire-logger-api:jar:2.22.2, org.apache.maven.surefire:surefire-booter:jar:2.22.2, org.codehaus.plexus:plexus-utils:jar:1.5.15, org.codehaus.plexus:plexus-interpolation:jar:1.11, org.slf4j:slf4j-jdk14:jar:1.5.6, org.slf4j:slf4j-api:jar:1.5.6, org.slf4j:jcl-over-slf4j:jar:1.5.6, org.apache.maven.reporting:maven-reporting-api:jar:3.0, org.apache.maven:maven-toolchain:jar:2.2.1, com.thoughtworks.qdox:qdox:jar:2.0-M8: Could not transfer artifact org.apache.maven.surefire:maven-surefire-common:jar:2.22.2 from/to alimaven (http://maven.aliyun.com/nexus/content/groups/public/): Transfer failed for http://maven.aliyun.com/nexus/content/groups/public/org/apache/maven/surefire/maven-surefire-common/2.22.2/maven-surefire-common-2.22.2.jar RSA premaster secret error: SunTls12RsaPremasterSecret KeyGenerator not available ....
.
那么如何从这一长串报错中,找出最关键的错误呢???
由于,这个报错信息时在下载jar中突然出现的,而报错信息中也显示执行插件错误,以及无法解析一些jar包
于是我开始怀疑我的maven仓库是否把需要的jar包下载了?
然后我开始了一大串白忙活的事…
我先是以为,maven仓库缺的只是报错上的jar包而已,但是当我在阿里云上把所有的需要的文件download下来后,还是报错,于是我有傻傻地以为是我下载地jar包不全,然后我把本地的maven仓库干掉了…(踏上了另外一条不归路…)但是还是没能解决原来的报错问题
那么意思就是:jar包是否下载完整不是解决这个报错的根本问题,于是我继续扫描错误信息,把目光放在了
RSA premaster secret error: SunTls12RsaPremasterSecret KeyGenerator not available
这才是关键问题!!!!!
解决:
Window->Prefrences->Java->Insatalled JRE->选择该jdk-edit->一定要点击Restore Default
在将jre更换成jdk后,注意一定要将jre库中的所有jar包更换到当前jdk目录下的jre文件夹下的lib文件夹下的jar包!!!