今天在用jetty启动一个项目时,碰到一个问题。报错信息如下:
There is an error in invoking javac. A full JDK (not just JRE) is required。
看到此错误,直觉说明是jdk的配置有问题。于是我按以下步骤发现了问题所在:
(1)查看jdk环境变量配置是否有问题,通过观察没有发现问题。
JAVA_HOME是:C:\Program Files\Java\jdk1.8.0_60
(2)观察jdk的安装目录,发现该目录中有多个版本的jre
(3)在cmd命令中执行java -version,发现了打印出来的jdk 版本不是环境变量中配置的jdk 1.8.0_60,而是jre1.8.0_92。这就奇怪了,为什么不是我环境变量里面配置的版本呢。于是回头有观察环境变量Path的配置:
C:\ProgramData\Oracle\Java\javapath;%JAVA_HOME%\bin;
发现oracle也配置了java路径,找到了问题的原因,也就找到了解决方法
(4)在Path中将JAVA_HOME的配置放置到最前就行了。如下:
.;%JAVA_HOME%\bin;C:\ProgramData\Oracle\Java\javapath;
再次启动jetty时,就正常启动了,且没有任何报错。