Eclipse Maven插件配置问题
我跟着这个post
现在,当我尝试使用maven插件安装构建时,我收到以下错误。 我执行的目标是clean -X install
Unable to locate the Javac Compiler in: C:\Program Files\Java\jre6\..\lib\tools.jar Please ensure you are using JDK 1.4 or above and not a JRE (the com.sun.tools.javac.Main class is required). In most cases you can change the location of your Java installation by setting the JAVA_HOME environment variable. -> [Help 1] org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:2.0.2:compile (default-compile) on project trojantime: Compilation failure Unable to locate the Javac Compiler in: C:\Program Files\Java\jre6\..\lib\tools.jar Please ensure you are using JDK 1.4 or above and not a JRE (the com.sun.tools.javac.Main class is required). In most cases you can change the location of your Java installation by setting the JAVA_HOME environment variable. at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:581) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:324) at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:247) at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:104) at org.apache.maven.cli.MavenCli.execute(MavenCli.java:427) at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:157) at org.apache.maven.cli.MavenCli.main(MavenCli.java:121) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290) at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230) at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409) at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352) Caused by: org.apache.maven.plugin.CompilationFailureException: Compilation failure Unable to locate the Javac Compiler in: C:\Program Files\Java\jre6\..\lib\tools.jar Please ensure you are using JDK 1.4 or above and not a JRE (the com.sun.tools.javac.Main class is required). In most cases you can change the location of your Java installation by setting the JAVA_HOME environment variable. at org.apache.maven.plugin.AbstractCompilerMojo.execute(AbstractCompilerMojo.java:516) at org.apache.maven.plugin.CompilerMojo.execute(CompilerMojo.java:114) at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:105) at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:577) ... 14 more [ERROR] [ERROR] [ERROR] For more information about the errors and possible solutions, please read the following articles: [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
在来自首选项的已安装JRE中,它是JRE设置和
这是about> installation> configuration>的快照
*** Platform Details: *** System properties: awt.toolkit=sun.awt.windows.WToolkit com.sun.management.jmxremote= eclipse.application=org.eclipse.ui.ide.workbench eclipse.commands=-os win32 -ws win32 -arch x86 -showsplash D:\eclipse VT preconfigured\eclipse\\plugins\org.eclipse.platform_3.3.202.v201002111343\splash.bmp -launcher D:\eclipse VT preconfigured\eclipse\eclipse.exe -name Eclipse --launcher.library D:\eclipse VT preconfigured\eclipse\plugins/org.eclipse.equinox.launcher.win32.win32.x86_1.0.200.v20090519\eclipse_1206.dll -startup D:\eclipse VT preconfigured\eclipse\plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar -showlocation -product org.eclipse.epp.package.jee.product -vm c:\Program Files\Java\jdk1.6.0_04\jre\bin\client\jvm.dll eclipse.home.location=file:/D:/eclipse VT preconfigured/eclipse/ eclipse.launcher=D:\eclipse VT preconfigured\eclipse\eclipse.exe eclipse.p2.data.area=@config.dir/../p2/ eclipse.p2.profile=epp.package.jee eclipse.product=org.eclipse.epp.package.jee.product eclipse.startTime=1279882656890 eclipse.vm=c:\Program Files\Java\jdk1.6.0_04\jre\bin\client\jvm.dll eclipse.vmargs=-Dosgi.requiredJavaVersion=1.5 -Xms40m -Xmx740m -Xss4m -XX:PermSize=128m -XX:MaxPermSize=128m -XX:CompileThreshold=5 -XX:MaxGCPauseMillis=10 -XX:MaxHeapFreeRatio=70 -XX:+UseConcMarkSweepGC -XX:+CMSIncrementalMode -XX:+CMSIncrementalPacing -Dcom.sun.management.jmxremote -Djava.class.path=D:\eclipse VT preconfigured\eclipse\plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar file.encoding=Cp1252 file.encoding.pkg=sun.io file.separator=\ java.awt.graphicsenv=sun.awt.Win32GraphicsEnvironment java.awt.printerjob=sun.awt.windows.WPrinterJob java.class.path=D:\eclipse VT preconfigured\eclipse\plugins/org.eclipse.equinox.launcher_1.0.201.R35x_v20090715.jar java.class.version=50.0 java.endorsed.dirs=c:\Program Files\Java\jdk1.6.0_04\jre\lib\endorsed java.ext.dirs=c:\Program Files\Java\jdk1.6.0_04\jre\lib\ext;C:\WINDOWS\Sun\Java\lib\ext java.home=c:\Program Files\Java\jdk1.6.0_04\jre java.io.tmpdir=C:\DOCUME~1\argus\LOCALS~1\Temp\ java.library.path=D:\eclipse VT preconfigured\eclipse;.;C:\WINDOWS\Sun\Java\bin;C:\WINDOWS\system32;C:\WINDOWS;c:/Program Files/Java/jdk1.6.0_04/jre/bin/client;c:/Program Files/Java/jdk1.6.0_04/jre/bin;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\Program Files\TortoiseSVN\bin;C:\Program Files\QuickTime\QTSystem\;C:\Program Files\Java\jdk1.6.0_04\bin;C:\Program Files\MySQL\MySQL Server 5.1\bin;C:\Documents and Settings\argus\My Documents\apache-ant-1.7.1-bin\apache-ant-1.7.1\bin;C:\Documents and Settings\argus\My Documents\apache-maven-2.0.10\bin;C:\Documents and Settings\argus\My Documents\groovy-binary-1.7.3\groovy-1.7.3\bin;C:\Documents and Settings\argus\My Documents\patch-2.5.9-7-bin\bin java.rmi.server.randomIDs=true java.runtime.name=Java(TM) SE Runtime Environment java.runtime.version=1.6.0_04-b12 java.specification.name=Java Platform API Specification java.specification.vendor=Sun Microsystems Inc. java.specification.version=1.6 java.vendor=Sun Microsystems Inc. java.vendor.url=http://java.sun.com/ java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi java.version=1.6.0_04 java.vm.info=mixed mode java.vm.name=Java HotSpot(TM) Client VM java.vm.specification.name=Java Virtual Machine Specification java.vm.specification.vendor=Sun Microsystems Inc. java.vm.specification.version=1.0 java.vm.vendor=Sun Microsystems Inc. java.vm.version=10.0-b19 line.separator= . . .
Eclipse似乎仍然指的是JRE而不是JDK。 此外,Eclipse中的默认运行时(位于“首选项”对话框的“已安装的运行时”页面中)可能是JRE。
我注意到这有时会由于获得多个VM配置而发生,第一个或最后一个被应用。 您可以通过转到Eclipse的“关于”页面,然后查看“安装详细信息”中的“配置”选项卡来确认是否是这种情况(在Helios中)。 通常,罪魁祸首certificate是eclipse.ini中缺少的新行。
也许您正在重用在JDK之外设置JRE时执行的“运行配置”。 创建一个新的“运行配置”,确保该选项卡显示为Java JDK。
尝试将JAVA_HOME设置为JDK而不是JRE?
使用Eclipse创建Maven项目时,可能是项目属性的文本文件编码和pom.xml
中的project.build.sourceEncoding
不同。 如果是这种情况,那么当您构建项目时,您将收到错误
“无法找到Javac编译器:……”
例如,我的文本文件编码是GBK,我的project.build.sourceEncoding
是UTF-8。 我刚刚将我的文本文件编码修改为UTF-8,一切都很好!
我也遇到过这种问题。
在我的例子中,事实certificate,只有为我的用户定义了JAVA_HOME,而为系统设置了PATH,maven插件使用了默认的JRE而不是JDK。 因此,请确保JAVA_HOME和PATH在同一范围内(我为系统添加了两个变量,并添加了JAVA_HOME作为PATH的第一部分)。
希望它可以帮到某人。
请注意-vm选项的格式 – 确切地说很重要:
-vm选项及其值(路径)必须位于不同的行上。 该值必须是Java可执行文件的完整绝对路径,而不仅仅是Java主目录。 -vm选项必须在-vmargs选项之前发生,因为-vmargs之后的所有内容都直接传递给JVM。
如果所有环境都很好并且您仍然遇到构建错误,那么最后的方法是将JAVA_HOME
为JDK 1.5或更高版本。 然后从命令提示符构建项目。 构建应该是成功的。
您可以尝试更新Eclipse正在使用的JDK,如下所示,它可以工作:
在Window-> Preferences …-> Java-> Installed JREs中添加和设置JRE:
JRE type: Standard VM JRE Name: jdk1.6.0_18 JRE home directory: C:\Program Files (x86)\Java\jdk1.6.0_18
如果不是这种情况,则JAVA_HOME路径中的括号和空格可能会导致问题。 尝试将JDK复制到其他位置并更新JAVA_HOME。
大段引用
将JRE转换为JDK:
– >转到Windows – >首选项 – >在左上方搜索框中键入已installed JRE's
– >单击installed JRE's
– >从右侧对话框中选择add
– >单击标准vm – >选择“JREHOME”目录并执行以下操作“ C:\ ProgramFiles \ java \ jdk1.8.0_131“ – >然后输入jdk1.8.0_131
”JRE NAME“ – >点击完成。