2014-10-11 5 views
29

Non ho mai lavorato con Maven prima e sto seguendo le istruzioni here. Quando faccio funzionare l'ordineErrore Maven: Forse stai usando un JRE piuttosto che un JDK?

mvn integration-test -Pamp-to-war 

Inizialmente scaricato un sacco di dipendenze, e alla fine ha mostrato,

COMPILATION ERROR : 
[INFO] ------------------------------------------------------------- 
[ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? 
[INFO] 1 error 

Sono su ubuntu 13.04.

Se c'è qualcosa che vuoi che ti dica, fammi sapere. Grazie.

EDIT

Quando faccio echo $JAVA_HOME ottengo /usr/lib/jvm/java-7-openjdk-i386/

Quando faccio mvn -version

ricevo,

Apache Maven 3.0.4 
Maven home: /usr/share/maven 
Java version: 1.7.0_25, vendor: Oracle Corporation 
Java home: /usr/lib/jvm/java-7-openjdk-i386/jre 
Default locale: en_US, platform encoding: UTF-8 
OS name: "linux", version: "3.8.0-26-generic", arch: "i386", family: "unix" 

Inoltre, ho scoperto this problem faced by someone else. Ma non sono sicuro di come fare per la soluzione che viene specificata?

Ulteriori modifiche.

[email protected]:/usr/lib/jvm/java-7-openjdk-i386$ ls -l 
total 12 
drwxr-xr-x 2 root root 4096 Sep 9 10:44 bin 
lrwxrwxrwx 1 root root 41 Jul 4 2013 docs -> ../../../share/doc/openjdk-7-jre- headless 
drwxr-xr-x 5 root root 4096 Oct 13 2013 jre 
drwxr-xr-x 4 root root 4096 Oct 13 2013 man 
+2

Avete JRE invece di JDK installato? – Zavior

+0

Ho jdk. Quando faccio 'echo $ JAVA_HOME' esce,/usr/lib/jvm/java-7-openjdk-i386/ – Kraken

+0

@Zavior Gentilmente controlla ora le modifiche. Ho aggiornato. – Kraken

risposta

36

Apparentemente, richiede il file tools.jar all'interno della cartella lib del mio $ JAVA_HOME. Non ho avuto la cartella lib, così ho reinstallato il mio JDK utilizzando il comando

apt-get install openjdk-7-jdk openjdk-7-doc openjdk-7-jre-lib 

Inoltre, this link may help some people.

3

Ecco come ho risolto il mio problema

clik destro sul progetto> proprietà> Java Compiler (seleziona quello che stai usando)

era 1.5 per me ma ho 1.8 installato. così l'ho cambiato a 1.8 .. e voilla ha funzionato !.

55

Ho riscontrato lo stesso problema con java 8 (ubuntu 16.04), cercando di compilare utilizzando la riga di comando mvn.

Ho verificato il mio $JAVA_HOME, java -version e mvn -version. Tutto sembra andare bene puntando a /usr/lib/jvm/java-8-openjdk-amd64.

Sembra che java-8-openjdk-amd64 non sia completamente installato di default e contenga solo JRE (nonostante il suo nome "jdk").

La reinstallazione di JDK ha funzionato.

sudo apt-get install openjdk-8-jdk 

poi alcuni nuovi file e nuove cartelle vengono aggiunti al /usr/lib/jvm/java-8-openjdk-amd64 e mvn è in grado di compilare di nuovo.

+0

Immagino che questo sia essenzialmente la stessa cosa della risposta accettata - non avendo JDK non avresti neanche tools.jar. – eis

5

Per me, ha funzionato come segue. Si prega di guardare la variabile di ambiente JAVA_HOME, se sta puntando a JRE o JDK.? Se punta a JRE, affronterai il problema "Forse stai correndo su un JRE piuttosto che su un JDK".se così cambia il percorso di JDK.

Modificando in questo modo, ha funzionato per me.

JAVA_HOME C: \ Program Files \ Java \ jdk1.8.0_31

0

Fare clic destro sulla cartella del progetto (Maven uno), selezionare Proprietà e dalla finestra delle proprietà, di nuovo selezionare Java Compiler e vedere che cosa è stato selezionato contro livello di conformità del compilatore e assicurarsi che sia la stessa versione del jre. Nel mio caso ho avuto 1.8 ma 1.5 è stato selezionato contro il livello di conformità del compilatore. Dopo aver selezionato 1.8 la compilazione ha avuto esito positivo senza questo errore.

3

Aggiungere questo configurazioni in pom.xml

<project ...> 
    ... 
    <build> 
     ... 
     <plugins> 
      <plugin> 
       <artifactId>maven-compiler-plugin</artifactId> 
       <version>3.1</version> 
       <configuration> 
        <source>1.7</source> 
        <target>1.7</target> 
        <fork>true</fork> 
        <executable>C:\Program Files\Java\jdk1.7.0_79\bin\javac</executable> 
       </configuration> 
      </plugin> 
     </plugins> 
    </build> 
    ... 
</project> 
1

Controllare se/usr/bin ha 'javac'. Se non hai installato JRE & devi installare la versione jdk dev come "java-1.8.0-openjdk-devel.x86_64"

0

Ho avuto lo stesso errore e mi mancava la variabile User: JAVA_HOME e il valore per SDK - "C: \ Programmi \ Java \ jdk-9.0.1" nel mio caso

0

Solo aggiungendo ulteriori dettagli su dove eseguire l'installazione. Il motivo principale sarebbe l'installazione di JAVA_HOME nella variabile di ambiente che dovrebbe puntare a correggere la posizione JDK.

  1. Check System -> Impostazioni di sistema Advance
  2. Clicca su ambiente variabile
  3. Aggiungere JAVA_HOME variabile -> "C: \ Program Files \ Java \ jdk1.8.0_141;"
  4. Modificare "percorso" -> aggiungi% JAVA_HOME%; al testo esistente.
0

Ho avuto lo stesso problema dopo l'installazione del pacchetto java-1.8.0-openjdk su AWS Linux AMI. L'ipotesi errata che ho fatto, era che, poiché il file terminava in openjdk, sarebbe la versione jdk. Questo non è il caso.

Il openjdk install page spiega tutto chiaramente.

Il pacchetto java-1.8.0-openjdk contiene solo l'ambiente Java Runtime . Se si desidera sviluppare programmi Java, installare il pacchetto java-1.8.0-openjdk-devel.

Se hai già installato il pacchetto java-1.8.0-OpenJDK, basta lasciare e il valore JAVA_HOME se funziona per il JRE e installare il pacchetto java-1.8.0-openjdk-devel usando yum install java-1.8.0-openjdk-devel -y .