我正在尝试使用maven在eclipse中构建一个spark应用程序,但是编译失败了。我修复了UpdateUser
系统变量,为它提供了JDK的路径,而不是JRE,如下所示:
JAVA_HOME
我将此字符串添加到Name:JAVA_HOME , value:C:\Program Files\Java\jdk1.8.0_73
变量PATH
,但它无效。
所以,我尝试了没有"C:\Program Files\Java\jdk1.8.0_73\bin"
如下"\bin"
,但没有新的。
所以我试图通过eclipse将我的JDK指向如下:"C:\Program Files\Java\jdk1.8.0_73"
,我也选择了JDK但是这个解决方案也没有用,所以我决定使用cmd修复它:
window->preferences->java->installed JREs
我检查了set JAVA_HOME="C:\Program Files\Java\jdk1.8.0_73"
echo %JAVA_HOME%
set PATH=%PATH%;%JAVA_HOME%\bin
echo %PATH%
,结果是java -version
所以我认为一切都没问题,但事实并非如此。
有时我在错误消息中有jdk1.8.0_73
缺失,有时我得到其他错误,提到我可能正在使用JRE而不是JDK(但我确定我指的是JDK )。它出现在。
图片2显示我的tools.jar
文件:
这是我在文件pom.xml中使用pom.xml
时出现的第一个错误,如图所示
[错误]无法在项目myapp上执行目标org.apache.maven.plugins:maven-compiler-plugin:3.1:compile(default-compile):编译失败[错误]此环境中未提供编译器。也许您运行的是JRE而不是JDK?
但当我用maven-compile-plugin
替换它时,我收到此错误:
[错误]无法执行目标org.apache.maven.plugins:maven-compiler-plugin:2.5.1:在项目myapp上编译(default-compile):致命错误编译:找不到tools.jar:C: \ Program Files \ Java \ jre1.8.0_91 .. \ lib \ tools.jar - > [Help 1] [ERROR] [ERROR]要查看错误的完整堆栈跟踪,请使用-e开关重新运行Maven。 [ERROR]使用-X开关重新运行Maven以启用完整的调试日志记录。
我尝试了命令maven-resources-plugin
,我找到了maven home(D:\ apache-maven-3.1.1),所以这是正常的,但令人惊讶的是java home(C:\ Program Files \ Java \ jdk1.8.0_73 \ JRE)。我再次检查了变量Path但是它是正确的(C:\ Program Files \ Java \ jdk1.8.0_73 \ bin)有什么问题?
我选择了我的项目 - >构建路径 - >配置构建路径 - > libraries-> jre系统库 - > edit->执行环境 - >选择javaSE-1.8(jdk 1.8.0-73),通常这意味着我正在使用java1.8,但我得到了这些错误日志:
[INFO] --- maven-resources-plugin:2.6:资源(默认资源)@ myapp - [警告]使用平台编码(实际上是Cp1252)来复制过滤后的资源,即构建依赖于平台!
[INFO]复制0资源 [INFO] --- maven-compiler-plugin:2.5.1:compile(default-compile)@ myapp ---
[警告]尚未使用平台编码Cp1252设置文件编码,即构建依赖于平台!
[INFO]将1个源文件编译为C:\ Users \ pc \ Desktop \ eclipse \ myapp \ target \ classes [错误]编译错误:
[错误] C:\ Users \ pc \ Desktop \ eclipse \ myapp \ src \ main \ java \ myapp \ Main.java:[107,38]错误:-source 1.5不支持lambda表达式 [INFO] BUILD FAILURE
[错误]无法执行目标org.apache.maven.plugins:maven-compiler-plugin:2.5.1:在项目myapp上编译(default-compile):编译失败
[错误] C:\ Users \ pc \ Desktop \ eclipse \ myapp \ src \ main \ java \ myapp \ Main.java:[107,38]错误:-source 1.5不支持lambda表达式
答案 0 :(得分:1)
更改JAVA_HOME变量时并不意味着您正在更改Eclipse配置。 Eclipse管理自己的变量,您可以根据需要设置多个JDK。您需要在eclipse中添加JDK并将其分配给项目。
右键单击您的项目,构建路径 - >配置构建路径。选择" JRE系统库"在右侧选项中选择编辑,然后配置JDK。
答案 1 :(得分:0)
我的问题出乎意料,因为最后问题出现在pom.xml文件而不是设置中,我只更正了pom文件中的这个插件,一切都很好。
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>