2010-11-29 14 views
2

Eclipse java.home Einstellung angeben, wenn ein Efeu resolve über IvyDE in Eclipse ausgeführt wird, die eine packager.xml enthält, die eine Javac Ant-Task ausführt, erhalte ich folgendes:Wie für Ivy/Ant

Unable einen Javac-Compiler zu finden; com.sun.tools.javac.Main befindet sich nicht auf dem Klassenpfad . Vielleicht zeigt JAVA_HOME nicht auf das JDK. Es wird derzeit auf "C: \ Program \ Java \ jdk1.6.0_22 \ jre" bei org.apache.tools.ant.taskdefs.compilers.CompilerAdapterFactory.getCompiler (CompilerAdapterFactory.java:108)

in eclipse.ini ich habe

-vm 
C:\Program Files\Java\jdk1.6.0_22\bin\javaw.exe 

und in Hilfe - Über Eklipse - Installationsdetails - Konfiguration ich sehe

java.home=C:\Program Files\Java\jdk1.6.0_22\jre 

Wie kann ich java.home p machen statt C:\Program Files\Java\jdk1.6.0_22 stattdessen?

Antwort

2

Eclipse verwendet intern eine eigene Javac-Implementierung. Daher benötigen Sie für die meisten Zwecke nur eine kompatible JRE. Aber javac task in ANT berücksichtigt die JAVA_HOME oder prüft auf die lokale path Variable. Auf Windows-Rechner als temporäre Lösung können Sie tun:

Open a command prompt geben Sie dann SET path=C:\Program Files\Java\jdk1.6.0_22\;%path% Hit eingeben geben Sie dann <eclipsehome>\eclipse.exe

Nun kann jeder Prozess von Eclipse gelaicht wird Ihre JDK-Version in der Pfadvariablen haben.

für eine dauerhafte Lösung .. 1. go to advance system setting 2. Wählen Sie advanced Registerkarte 3. wählen environment variables 4. Das System path Variable und JAVA_HOME ändern (falls erforderlich)

Sie können die ähnliche Sache tun für * Nix-System (überprüfen Sie einfach, wie Sie die Umgebungseinstellung einstellen)

Ich hoffe, das wird funktionieren.

UPDATE

Das Projekt Classpath ist nicht das gleiche wie die ANT Classpath. Um einen Ant-Klassenpfad einzurichten, navigieren Sie zu window->preferences->ant->runtime. Überprüfen Sie, ob die Global Entries auf C:\Program Files\Java\jdk1.6.0_22\lib\tools.jar zeigt, wenn nicht, fügen Sie sie hinzu. Normalerweise funktioniert es in den meisten Fällen, in denen ant nach Javac fragt. Wenn dies fehlschlägt, überprüfen Sie bitte, ob ein anderes Skript Ihre JAVA_HOME-Variable und die ANT global entries-Einstellung nicht zurücksetzt.

Wenn IvyDE nicht die ANT Verwendung mit Eclipse als Plugin gebündelt (und unter Bezugnahme auf einige Standard-Installation) oder wenn Sie eine Umgebungsvariable wie ANT_HOME definiert haben kopieren Sie dann tools.jar Datei C:\Program Files\Java\jdk1.6.0_22\lib\-ANT_HOME\lib.

Überprüfen Sie auch diese vorherige SO Post (Ant can't find Javac. No matter what I do it always claims JAVA_HOME is "C:\Program Files\Java\jre6")

UPDATE 2 ok .. Prüfen Sie diese Seite ... http://ant.apache.org/ivy/ivyde/history/latest-milestone/preferences.html

Reihenfolge der Classpath-Einträge: Durch standardmäßig die Klassenpfadcontainer Einträge werden nach Reihenfolge der Deklaration in der efeu.xml sortiert. Wenn dort viele Einträge sind, kann es nützlich sein, sie lexikalisch für verbesserte Lesbarkeit bestellt haben.

Ist tools.jar in ivy.xml vorhanden? bitte einmal prüfen.

+0

Ich habe die PATH- und JAVA_HOME-Variablen in der Umgebung, die Eclipse ausführt, richtig eingestellt, aber dies wird nicht beachtet. Nur die Einstellung -vm scheint die Variable JAVA_HOME zu beeinflussen, die von der von IvyDE ausgeführten ant javac-Aufgabe verwendet wird. – tukushan

+0

@tukushan: Überprüfen Sie meine aktualisierte Antwort. hoffe, es wird funktionieren. – Favonius

+0

Nochmals vielen Dank für Ihre Antwort. Mein ANT-Klassenpfad in Eclipse enthält den Eintrag tools.jar. Ich kann Ant-Build-Skripte mit der Java-Task in Ordnung ausführen. Leider funktioniert es immer noch nicht, wenn ich eine ant javac Aufgabe über IvyDE ausführe. Muss etwas mit der Art zu tun haben, wie IvyDE eine Ameise startet. Ich habe versucht, tools.jar in ANT_HOME \ lib zu setzen, aber das hat auch nicht geholfen. – tukushan