2010-07-23 83 views
8

我按照this threadEclipse的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集和

这里约>安装>配置的快照>

*** 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 
[email protected]/../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= 
. 
. 
. 
+0

在Installed JRE中添加JDK解决了这个问题谢谢Vineet – 2010-07-23 11:36:03

+0

是的,它是安装的JRE。 eclipse.ini中的运行时配置指的是来自JDK的jvm.dll,所以结果很好。 – 2010-07-23 11:46:45

+0

我相信添加JDK恰恰就是我在http://stackoverflow.com/questions/1410511/eclipse-jvm-configuration/1410524#1410524之前的回复中回答的,链接到http://stackoverflow.com/问题/ 1431531 /怎么是这个eclipse-jdk-setting-affecting-the-systems-jdk-setting/1431554#1431554 – VonC 2010-07-23 12:48:12

回答

14

看来Eclipse仍然指的是JRE而不是JDK。另外,Eclipse中的默认运行时(可在Preferences对话框的“Installed Runtimes”页面中找到)可能是JRE。

我注意到,有时会出现这种情况,原因是多个虚拟机的配置被获取,第一个或最后一个被应用。您可以通过转至Eclipse的关于页面,然后查看安装详细信息中的配置选项卡来确认是否属于这种情况(在Helios中)。通常罪魁祸首是eclipse.ini中缺失的新行。

+0

编辑该帖子。 – 2010-07-23 11:22:55

1

尝试设置JAVA_HOME为JDK而不是JRE?

+1

是的,它已经设置。 – 2010-07-23 10:55:21

+2

Eclipse使用在eclipse.ini中指向的vm – 2010-07-23 11:46:27

0

我也有这种问题。

在我的情况下,事实证明,JAVA_HOME是为我的用户定义的,只是为系统设置了PATH,而maven插件使用了默认的JRE而不是JDK。 所以请确保JAVA_HOME和PATH在相同的范围内(我将两个变量都放在系统中,并将JAVA_HOME添加为PATH中的第一部分)。

希望它可以帮助别人。

0

注意-vm选项的格式 - 这是很重要的是准确的:

的-vm选项,并将其值(路径)必须在单独的行。 该值必须是Java可执行文件的完整绝对路径,而不仅限于Java主目录。 -vm选项必须出现在-vmargs选项之前,因为-vmargs之后的所有内容都直接传递给JVM。

1

当您使用Eclipse创建了Maven项目时,可能项目属性的文本文件编码和pom.xml中的project.build.sourceEncoding不一样。如果是这样的话,那么当你建造的项目,你会得到错误

“无法找到javac编译器中:......”

例如,我的文本文件编码是GBK,我的project.build.sourceEncoding是UTF-8。我只是将我的文本文件编码修改为UTF-8,并且一切正常!

3

也许您正在重新使用JRE在JDK之外设置时的“运行配置”。创建一个新的“运行配置”,确保选项卡标示为Java JDK。

0

如果所有的环境都很好,并且仍然出现构建错误,那么最后的方法是将JAVA_HOME设置为JDK 1.5或更高版本。然后从命令提示符构建项目。构建应该是成功的。

0

你可以尝试更新JDK Eclipse中使用,如下所示,它的工作原理:

添加和设置JRE的窗口 - >首选项...-> Java的>安装的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。

0

块引用

转换的JRE JDK:

- >转到窗口 - >首选项 - 左顶部搜索框>类型installed JRE's - >点击installed JRE's - >从右侧对话框 选择add - >单击标准VM - >选择目录 “JREHOME” 并执行以下操作“C:\ PROGRAMFILES \ java的\ jdk1.8。 0_131“ - >然后键入jdk1.8.0_131”JRE NAME“ - >单击完成。