nieprawidłowe wydanie docelowe: 1.7


121

Widziałem podobne pytania, ale nie znalazłem jeszcze odpowiedzi.

Używając kompilacji Maven, otrzymuję:

[ERROR] Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.0:compile (default-compile) on project api: Fatal error compiling: invalid target release: 1.7 -> [Help 1]

Oto plik pom.xml:

<plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.0</version>
    <configuration>
        <source>1.7</source>
        <target>1.7</target>
        <encoding>UTF-8</encoding>
    </configuration>
</plugin>

Wersja Javac:

javac 1.7.0_25

Wersja Java:

java version "1.7.0_25"
Java(TM) SE Runtime Environment (build 1.7.0_25-b15)
Java HotSpot(TM) 64-Bit Server VM (build 23.25-b01, mixed mode)

Masz jakiś pomysł, co to może być?


14
Najprawdopodobniej maven działa na Javie 6.
— Peter Lawrey

3
Sprawdziłbym wszystkie twoje zmienne środowiskowe, aby zobaczyć, czy któreś z nich używają Javy 6. np. Java 7 może być na twojej ścieżce, ale pamiętam, że maven używał JAVA_HOME lub czegoś podobnego.
— Peter Lawrey

36
Wykonaj mvn -version. Powie Ci, której Javy używa.
— JB Nizet

masz rację, mvn używa java 1.6 - jak mogę to zmienić?
— Karan

1
ustaw zmienną JAVA_HOME na katalog domowy JDK7.
— JB Nizet

Odpowiedzi:


159

Musisz ustawić JAVA_HOME na swój katalog domowy jdk7, na przykład w systemie Microsoft Windows:

  • „C: \ Program Files \ Java \ jdk1.7.0_40”

lub na OS X:

  • /Library/Java/JavaVirtualMachines/jdk1.7.0_40.jdk/Contents/Home

71
Na komputerze Mac, na którym są zainstalowane jdk6 i jdk7, można to wymusić w pliku ~ / .profile:export JAVA_HOME=$(/usr/libexec/java_home -v 1.7)
— Hank,

3
jdk8 może być również używany do uzyskania zgodności z jdk7
— Wolfgang Fahl

3
pamiętaj, aby ponownie załadować ~ / .profile na komputerze Mac z:source ~/.profile
— Caio Iglesias.

Prawdopodobnie działa to na wiele rzeczy, ale nie wystarcza dla Mavena, a już na pewno nie dla wtyczki kompilatora maven. Sprawdź tutaj odpowiedź Mike'a na jego własne pytanie: stackoverflow pytanie 24705877 To rozwiązało problem zarówno w wierszu poleceń, jak i podczas zaćmienia. Pomocna może być również odpowiedź @LinGao na pytanie 2503658 o przepływie stosu i użycie zmiennej $ JAVACMD.
— Litome

42

Poza ustawieniem JAVA_HOMEzmiennej środowiskowej, musisz upewnić się, że używasz poprawnego JDK w konfiguracji Mavena. Idź do Run -> Run Configuration , wybierz konfigurację Maven Build, przejdź do zakładki JRE i ustaw poprawne Runtime JRE.

Konfiguracja uruchamiania Mavena


+1, wiedziałem, że zapomniałem czegoś zaktualizować ... Domyślną opcją (dla mnie) podczas tworzenia konfiguracji było „Alternatywne JRE”. Jeśli ktokolwiek inny to uruchomi, upewnij się, że Twoja wtyczka Maven ORAZ konfiguracje są poprawnie zaktualizowane!
— king14nyr

Miałem odpowiedni JAVA_HOME dla Java 8, ale nadal mi go brakowało. Rozwiązałeś mój problem, dzięki
— dtortola

3

W IntelliJ IDEA zdarzyło mi się to, kiedy zaimportowałem projekt, który działał dobrze i działał z Javą 1.7. Najwyraźniej nie powiadomiłem IntelliJ, że java 1.7 została zainstalowana na moim komputerze i nie znalazłem mojego $JAVA_HOME.

Na komputerze Mac można to rozwiązać przez:

Kliknięcie prawym przyciskiem myszy na moduł | Ustawienia modułu | Projekt

i dodając 1.7 SDK, wybierając „Nowy” w Project SDK.

Następnie przejdź do głównego menu IntelliJ IDEA | Preferencje | Maven | Biegacz

i wybierz poprawne środowisko JRE. W moim przypadku poprawnie zaktualizował Użyj Project SDK, który był teraz 1.7.


Zauważ, że istnieją ustawienia projektu i preferencje dla Intellij przynajmniej na Macu, musiałem przejść do Ustawienia -> Buduj Exec, Wdróż -> Kompilator Java, a następnie ustawić wersję kodu bajtowego projektu zgodnie z potrzebami.
— Otwarto

1

Kiedy maven pracuje poza Eclipse, ale podaje ten błąd po zmianie JDK, przejdź do konfiguracji Maven Run, a na dole strony głównej znajduje się opcja „Maven Runtime”. Mój używał wbudowanego mavena, więc po przełączeniu go na mojego zewnętrznego mavena, zadziałało.


gdzie jest konfiguracja Maven Run?
— R Claven

1
Kliknij prawym przyciskiem myszy plik build.xml, przejdź do „Uruchom jako”, a następnie „Uruchom konfigurację” powinno być ostatnią opcją. Jeśli przewiniesz typy konfiguracji uruchamiania, jedną z nich jest „Maven Build”, która ma opcję wyboru „Maven Runtime”. Obok znajduje się przycisk „konfiguruj”
— djb,

0

Prawdopodobnie działa to na wiele rzeczy, ale nie wystarcza dla Mavena, a już na pewno nie dla wtyczki kompilatora maven.

Sprawdź odpowiedź Mike'a na jego własne pytanie tutaj: pytanie stackoverflow 24705877

To rozwiązało problem zarówno w wierszu poleceń, jak i podczas zaćmienia.

Również @LinGao odpowiedź na pytanie 2503658 stackoverflow i użycie zmiennej $ JAVACMD może pomóc, ale sam tego nie testowałem.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.