Errore Maven: forse stai lavorando su un JRE piuttosto che su un JDK?

Non ho mai lavorato con Maven e sto seguendo le istruzioni qui. Quando eseguo il comando

mvn integration-test -Pamp-to-war 

Inizialmente ha 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.

MODIFICARE

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

Quando faccio mvn -version

Ottengo,

 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 questo problema affrontato da qualcun altro . 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 

Ho affrontato lo stesso problema con java 8 (ubuntu 16.04), cercando di compilare usando la mvn 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 

Quindi alcuni nuovi file e nuove cartelle vengono aggiunti a /usr/lib/jvm/java-8-openjdk-amd64 e mvn è in grado di ricompilare nuovamente.

Apparentemente, richiede il file tools.jar all’interno della cartella lib della mia $ JAVA_HOME. Non avevo la cartella lib, quindi ho reinstallato il mio jdk usando il comando

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

Inoltre, questo collegamento può aiutare alcune persone.

Per me, ha funzionato come segue. Si prega di guardare la variabile d’ambiente JAVA_HOME, se sta puntando a JRE o JDK.? Se ha indicato JRE, dovrai affrontare 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: \ Programmi \ Java \ jdk1.8.0_31

Aggiungi questa configurazione in pom.xml

  ...  ...   maven-compiler-plugin 3.1  1.7 1.7 true C:\Program Files\Java\jdk1.7.0_79\bin\javac     ...  

Questo è il modo in cui ho risolto il mio problema

fai clic destro sul progetto> proprietà> Compilatore Java (seleziona quello che stai utilizzando)

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

Controlla se / usr / bin ha ‘javac’. Se non hai installato JRE e devi installare la versione di jdk dev come “java-1.8.0-openjdk-devel.x86_64”

Aggiungendo solo ulteriori dettagli su dove installare. Il motivo principale sarebbe l’installazione di JAVA_HOME nella variabile di ambiente che dovrebbe puntare a correggere la posizione JDK.

  1. Verifica sistema -> Impostazioni avanzate del sistema
  2. Clicca sulla variabile di ambiente
  3. Aggiungi variabile JAVA_HOME -> “C: \ Programmi \ Java \ jdk1.8.0_141;”
  4. Modifica “percorso” -> aggiungi% JAVA_HOME%; al testo esistente.

Ciò è dovuto all’esecuzione di jre anziché di jdk, per installare jdk seguire i passaggi seguenti

Installazione di java 8 in amazon linux / redhat

-> yum search java | grep openjdk yum search java | grep openjdk

-> yum install java-1.8.0-openjdk-headless.x86_64

-> yum install java-1.8.0-openjdk-devel.x86_64

-> update-alternatives --config java #pick java 1.8 e premi 1

-> update-alternatives --config javac #pick java 1.8 e premi 2

Grazie

Fare clic con il tasto destro sulla cartella del progetto (Maven uno), selezionare le proprietà e dalla finestra delle proprietà, selezionare nuovamente il compilatore Java e vedere cosa viene selezionato rispetto al 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.

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

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

La pagina di installazione di openjdk spiega tutto chiaramente.

Il pacchetto java-1.8.0-openjdk contiene solo Java Runtime Environment. 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, lascia il valore JAVA_HOME se sta funzionando per JRE e installa il pacchetto java-1.8.0-openjdk-devel usando yum install java-1.8.0-openjdk-devel -y .

Ho affrontato il problema anche se JAVA_HOME puntava a JDK. Ci è voluto del tempo per capire perché stava gettando l’eccezione.

Il problema era che ho impostato JAVA_HOME come utente amministratore sulla mia macchina per windows. È necessario aggiungere la variabile di ambiente JAVA_HOME che punta a JDK destro alle impostazioni della variabile d’ambiente del profilo utente .

Per risolvere il mio problema su Linux non ho un JDK, ho solo scaricato il JDK e caricato sul server Linux, e digito: tar xvf jdk-8u45-linux-x64.tar.gz