Ho un'applicazione Maven Eclipse che sto cercando di correre attraverso il prompt dei comandi utilizzando il seguente comando:non supportata versione major.minor 51,0 ma tutto è impostato per JDK 1.6
java -cp target/classes;"target/dependency/*" com.example.Main
Purtroppo, viene generata errore:
UnsupportedClassVersionError : unsupported major.minor version 51.0
ho fatto qualche ricerca e ha scoperto che ha qualcosa a che fare con l'applicazione viene compilata su un JDK di una versione più recente, che il JRE può girare. A quanto pare il 51 significa che è stato costruito per 1.7, ma non hanno un JDK 7 sul mio computer ...
Così ho fatto in modo che tutto è impostato alla versione 1.6: il file in
system.properties la radice contiene
java.runtime.version=1.6
Aggiunto alla proprietà Maven
<java.version>1.6</java.version>
specificato il compilatore plugin di Maven nel mio pom.xml
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.1</version>
<configuration>
<source>1.6</source>
<target>1.6</target>
</configuration>
</plugin>
ho controllato la versione del mio Java utilizzando il comando java -version che ha restituito
Java version "1.6.0_38"
Java(TM) SE Runtime Environment (build 1.6.0_38-b05)
Java HotSpot(TM) 64-bit Server VM (build 20.13-b02, mixed mode)
e un aggiornamento del mio progetto dopo aver impostato l'esperto-compiler-plugin ha portato in Eclipse impostare automaticamente il livello di compilatore a 1.6, il livello di sfaccettatura del progetto a 1.6 e l'aggiunta della libreria di sistema jre JavaSE-1.6 al mio progetto.
Quindi non ho assolutamente idea da dove provenga questo JDK 1.7. Non ho mai installato JDK 1.7 su questo computer per cominciare ...
Inoltre, in origine, il plugin per il compilatore di maven non era presente, quindi è stato compilato con 1.5, suppongo. Ma ho fatto un mvn clean install
, poi un mvn package
, e poi ho provato di nuovo il comando dopo aver regolato tutte le impostazioni e ancora genera lo stesso errore.
Manca assolutamente qualcosa. Ricontrolla la tua versione java. Controllare sul prompt dei comandi: 'java -version' e' javac -version' –
Forse una dipendenza ha bisogno di Java 1.7 – Adrian
java -version e javac -version restituiscono entrambi 1.6.0_38, ma in realtà non lo compilo utilizzando il prompt dei comandi. Lo uso solo per eseguire la mia app. Sto compilando usando Maven, e lì uso il plug-in Maven. –