2015-01-20 9 views
9

Sto provando a eseguire il test di automazione su Mac. Ho installato Maven e Java, JDK come segue:javac: versione di destinazione non valida: 1.8 su Mac quando si esegue il comando Maven

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) 

e 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" 

Quando il comando Maven ho eseguito, ho ottenuto questo errore:

[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] 

Ho cercato su qui, c'è una soluzione accettata è questa:

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

Ho eseguito questo comando, ma non è successo niente! Non so cosa c'è che non va.

+0

Quali sono le uscite di 'which java' e' echo $ JAVA_HOME'? – stevecross

+0

Per me, l'aggiornamento da Maven 3.2.5 a 3.3.3 ha funzionato. – Benj

risposta

22

In primo luogo, capire dove 1.8 Java è installato eseguendo il comando:

/usr/libexec/java_home -v 1.8 

Quindi, impostare la variabile d'ambiente JAVA_HOME eseguendo il c ommando:

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

Maven dovrebbe funzionare in seguito, almeno in quella finestra del terminale.

È necessario impostare la variabile di ambiente JAVA_HOME nel proprio profilo se non si desidera eseguire questi comandi ogni volta che si apre un nuovo terminale.

+0

Grazie, hai salvato la mia giornata :) – Ragnarsson

3

Se non lo si è già fatto, utilizzare maven-compiler-plugin per determinare la versione di Java da utilizzare in Maven. Mettere questo nel vostro file pom.xml (cambiare la versione <source/> e <target/> alla versione JDK si richiede):

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

(Se hai già un <build/> e/o <plugins/> sezione, aggiungere la parte <plugin/>, solo.)

Problemi correlati