2010-07-23 18 views
8

Śledzę this threadEclipse Plugin Maven konfiguracji Problem

teraz gdy próbuję zbudować przy użyciu Maven zainstalowaną wtyczkę otrzymuję następujący błąd. cel i wykonywany był 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 

zainstalowaną JRE z preferencji jest zestaw JRE i

Oto zrzut o> Instalacja> konfiguracja>

*** 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

dodanie JDK w zainstalowanym JRE rozwiązany dzięki Vineet –

+0

Tak, to był zainstalowany JRE. Konfiguracja środowiska wykonawczego z pliku eclipse.ini odnosi się do pliku jvm.dll z pakietu JDK, więc wszystko poszło dobrze. –

+0

Sądzę, że dodanie JDK jest dokładnie tym, co ci odpowiedziałem w swoim poprzednim komentarzu http://stackoverflow.com/questions/1410511/eclipse-jvm-configuration/1410524#1410524, linkując do http://stackoverflow.com/ pytania/1431531/how-is-the-eclipse-jdk-setting-affect-the-systems-jdk-setting/1431554 # 1431554 – VonC

Odpowiedz

14

Wygląda na to, że Eclipse wciąż odnosi się do JRE zamiast do JDK. Ponadto domyślnym środowiskiem wykonawczym w środowisku Eclipse (znajdującym się na stronie "Zainstalowane środowiska wykonawcze" w oknie dialogowym Preferencje) może być środowisko JRE.

Zauważyłem, że zdarza się to czasami z powodu wielu konfiguracji maszyn wirtualnych, z których pierwszy lub ostatni został zastosowany. Możesz sprawdzić, czy tak jest (w Helios), przechodząc na stronę Informacje o Eclipse, a następnie przeglądając kartę Konfiguracja w Szczegóły instalacji. Zwykle sprawcą okazuje się brakująca nowa linia w pliku eclipse.ini.

+0

Edytował post. –

1

Spróbuj ustawić JAVA_HOME do JDK i nie do JRE?

+1

Tak, jest już ustawione. –

+2

Eclipse używa vm wskazanego w eclipse.ini –

0

Miałem również tego rodzaju problemy.

W moim przypadku okazało się, że JAVA_HOME został zdefiniowany tylko dla mojego użytkownika, podczas gdy PATH został ustawiony dla systemu, a wtyczka maven używa domyślnego JRE zamiast JDK. Upewnij się, że JAVA_HOME i PATH są w tym samym zakresie (ustawiłem obie zmienne dla systemu i dodałem JAVA_HOME jako pierwszą część w PATH).

Mam nadzieję, że komuś pomaga.

0

Uwaga format -vm - ważne jest, aby być dokładnym:

-vm opcja i jego wartość (ścieżka) musi znajdować się na oddzielnych liniach. Wartość musi być pełną pełną ścieżką do pliku wykonywalnego Java, a nie tylko do katalogu głównego Java. Opcja -vm musi wystąpić przed opcją -vmargs, ponieważ wszystko po -vmargs jest przekazywane bezpośrednio do maszyny JVM.

1

Po utworzeniu projektu Maven za pomocą Eclipse, być może kodowanie pliku tekstowego właściwości twojego projektu i project.build.sourceEncoding w twoim pom.xml nie było takie samo. Jeśli o to chodzi, to kiedy zbudował projekcie, że pojawia się błąd

„Nie można zlokalizować kompilatora javac w: ...”

Na przykład, mój kodowanie pliku tekstowego był GBK, a mój project.build.sourceEncoding był UTF-8. Właśnie zmodyfikowałem kodowanie pliku tekstowego na UTF-8 i wszystko było OK!

3

Być może ponownie używasz "konfiguracji uruchamiania", którą wykonałeś, gdy środowisko JRE zostało skonfigurowane poza JDK. Utwórz nową "Uruchom konfigurację", upewniając się, że karta jest oznaczona Java JDK.

0

Jeśli wszystkie środowiska są w porządku i nadal występują błędy kompilacji, ostatecznym podejściem jest ustawienie JAVA_HOME jako JDK 1.5 lub nowszej. Następnie skompiluj projekt z wiersza poleceń. Kompilacja powinna zakończyć się sukcesem.

0

Można spróbować aktualizację JDK Eclipse korzysta, jak następuje, i to działa:

Dodaj i ustawić JRE w window-> Preferencje ...-> Java-> Zainstalowane JRE:

JRE type: Standard VM JRE 
Name: jdk1.6.0_18 
JRE home directory: C:\Program Files (x86)\Java\jdk1.6.0_18 

Jeśli tak nie jest, to możliwe, że nawiasy i spacje w ścieżce JAVA_HOME powodują problemy. Spróbuj skopiować JDK do innej lokalizacji i zaktualizuj swój JAVA_HOME.

0

Blockquote

DO CONVERT JRE DO JDK:

-> Windows Goto -> Preferencje -> Typ jako installed JRE's w lewym górny SearchBox -> kliknij installed JRE's -> wybierz add z prawego okna dialogowegoBox -> kliknij standard vm -> wybierz katalog dla "JREHOME" i wykonaj następujące czynności "C: \ ProgramFiles \ java \ jdk1.8. 0_131 " -> następnie wpisz jako jdk1.8.0_131" JRE NAME " -> kliknij Zakończ.