2015-01-20 5 views
9

Ich versuche, einen Automatisierungstest auf dem Mac auszuführen. Ich installierte Maven und java, jdk, wie folgend:javac: Ungültige Zielversion: 1.8 auf Mac beim Ausführen von Maven-Befehl

java version "1.8.0_25" 
Java(TM) SE Runtime Environment (build 1.8.0_25-b17) 
Java HotSpot(TM) 64-Bit Server VM (build 25.25-b02, mixed mode) 

und Maven:

Apache Maven 3.2.5 (12a6b3acb947671f09b81f49094c53f426d8cea1; 2014-12-14T18:29:23+01:00) 
Maven home: /usr/local/Cellar/maven/3.2.5/libexec 
Java version: 1.6.0_65, vendor: Apple Inc. 
Java home: /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/Contents/Home 
Default locale: en_US, platform encoding: MacRoman 
OS name: "mac os x", version: "10.9.5", arch: "x86_64", family: "mac" 

Wenn ich Maven-Befehl ausgeführt, ich diesen Fehler habe:

[ERROR] Failure executing javac, but could not parse the error: 
[ERROR] javac: invalid target release: 1.8 
[ERROR] Usage: javac <options> <source files> 
[ERROR] use -help for a list of possible options 
[ERROR] -> [Help 1] 

ich hier gesucht, Es gibt eine akzeptierte Lösung ist dies:

sudo cp $JAVA_HOME/lib/tools.jar /Library/Java/Extensions/ 

Ich habe diesen Befehl ausgeführt, aber es ist nichts passiert! Ich weiss nicht, was falsch ist.

+0

Was sind die Ausgaben von 'which java' und' echo $ JAVA_HOME'? – stevecross

+0

Für mich war ein Upgrade von Maven 3.2.5 auf 3.3.3 die Lösung. – Benj

Antwort

22

Zuerst herauszufinden, wo 1.8 Java, indem Sie den Befehl installiert ist:

/usr/libexec/java_home -v 1.8 

Dann stellen Sie Ihre JAVA_HOME Umgebungsvariable durch die c läuft ommand:

export JAVA_HOME=<whatever the output from the previous command was> 

Maven sollte danach arbeiten, zumindest in diesem Terminalfenster.

Sie müssen die Umgebungsvariable JAVA_HOME in Ihrem Profil festlegen, wenn Sie diese Befehle nicht bei jedem Öffnen eines neuen Terminals ausführen möchten.

+0

Danke, du hast meinen Tag gerettet :) – Ragnarsson

3

Wenn Sie dies noch nicht getan haben, verwenden Sie die maven-compiler-plugin, um die Java-Version zu ermitteln, die in Maven verwendet werden soll. Setzen Sie diese in Ihre pom.xml Datei (ändern Sie die <source/> und <target/> Version auf die JDK-Version Sie benötigen):

<build> 
    <plugins> 
     <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> 
    </plugins> 
</build> 

(Wenn Sie bereits ein <build/> und/oder <plugins/> Abschnitt, fügen Sie den <plugin/> Teil nur.)