Pomimo określenia JDK 1.7 we wszystkich ustawieniach projektu (w tym w File -> Project Structure -> Project :: Project SDK
), IntelliJ 13
podczas próby skompilowania prostego kodu Java 7, który korzysta z operatora diamentu, generowany jest następujący błąd :
java: diamond operator is not supported in -source 1.5
(use -source 7 or higher to enable diamond operator)
Czy jest jakieś inne miejsce w konfiguracji, w którym oczekiwana -source 7
opcja powinna być włączona?
File -> Project Structure -> Project :: Project language level
zmienić naDiamonds, ARM, multi-catch etc
?Odpowiedzi:
Jeśli nic z tego nie pomaga (w moim przypadku), możesz ustawić to w swoim pom.xml, na przykład:
Jak wspomniał ten fajny facet: https://stackoverflow.com/a/25888116/1643465
źródło
<properties> <maven.compiler.source>1.8</maven.compiler.source> <maven.compiler.target>1.8</maven.compiler.target> </properties>
InteliJ Support ForumSprawdź poziomy językowe swojego projektu / modułu (Struktura projektu | Projekt; Struktura projektu | Moduły | nazwa modułu | Źródła). Możesz również rzucić okiem na Ustawienia | Kompilator | Kompilator Java | Wersja kodu bajtowego na moduł.
Ustaw również to:
Plik -> Struktura projektu -> Moduły :: Źródła (obok Ścieżki i zależności) i ma opcję „Poziom języka”, która również musi być poprawnie ustawiona.
źródło
Additional command line parameters
wJava Compiler
ustawieniach jest puste.[Dla IntelliJ IDEA 2016.2]
Chciałbym rozszerzyć część odpowiedzi Petera Gromova o aktualny zrzut ekranu. W szczególności ta konkretna część:
Uważam, że (przynajmniej w 2016.2): sprawdzenie różnych zatwierdzeń w
git
resetuje je do 1.5.źródło
git checkout
). Okazało się, że udało mi się bezpiecznie usunąć wpisy z tej listy; moduł wraca do używania „Wersja kodu bajtowego projektu”.Alternatywnie możesz zastosować wtyczkę maven-compiler-plugin z odpowiednią wersją java, dodając to do swojego pom.xml:
źródło
Próbowałem wprowadzić zmiany w Intellij IDEA, jak poniżej:
1.
2.
ale nic nie działało, przywrócił wersje do java 1.5, gdy tylko go zapisałem.
Jednak dodanie poniższych wierszy do katalogu głównego (na poziomie projektu) pom.xml pomogło mi rozwiązać powyższy problem: (obie opcje działały dla mnie)
Opcja 1:
Opcja 2:
źródło
Plik-> Struktura projektu-> Ustawienia projektu-> Projekt-> Poziom języka projektu
Plik-> Struktura projektu-> Ustawienia projektu-> Moduły-> Poziom językowy
Zmień poziom za pomocą menu rozwijanego
źródło
W linii poleceń (terminal Unix) Przejdź do głównego folderu projektu i zrób to
Spowoduje to zmianę właściwości poziomu języka we wszystkich plikach .iml projektu z java 1.5 na java 1.8.
źródło
compiler.xml
katalogu głównym projektu (IntelliJ 2017.2):sed 's/target="1.5"/target="1.8"/g' .idea/compiler.xml
Najpierw musisz zmienić "wersję kodu bajtowego projektu" pod
File > Settings
,Compiler > Java Compiler
Po drugie, wykonaj pełną przebudowę.
źródło
Mam ten sam problem, ale w innej sytuacji. Mogę bez problemu kompilować z maven w wierszu poleceń (
mvn clean install
), ale w Intellij zawsze otrzymywałem"java: diamond operator is not supported in -source 1.5"
błąd kompilacji, mimo że ustawiłem wtyczkę maven-compiler-plugin z java 1.8 w pom.xml.Okazało się, że mam ustawienie zdalnego repozytorium w pliku settings.xml mojego mavena, od którego zależy projekt, ale Intellij używa własnego mavena, który nie ma tego samego ustawienia z moim lokalnym ekspertem.
Więc moim rozwiązaniem była zmiana ustawienia maven Intellij (
Settings -> Build, execution, Deployment -> Maven -> Maven home directory
) na użycie lokalnego mavena.źródło
W IntelliJ Community Edition 2019.02 zmiana następujących ustawień zadziałała
Zaktualizuj plik-> Struktura projektu-> Ustawienia projektu-> Projekt-> Poziom języka projektu do Java 11 (zaktualizuj do wersji Java, której chcesz używać w swoim projekcie), używając listy rozwijanej.
Zaktualizuj plik-> Struktura projektu-> Ustawienia projektu-> Moduły-> Poziom języka
Zaktualizuj plik -> Ustawienia -> Kompiluj, uruchamiaj, wdrażaj -> Kompilator -> Kompilator Java -> Wersja kodu bajtowego projektu do java 11.
Zaktualizuj wersję docelową dla wszystkich wpisów w Plik-> Ustawienia-> Kompilacja, wykonanie, Wdrożenie -> Kompilator -> Kompilator Java -> Wersja kodu bajtowego modułu.
źródło
W IntelliJ 2017 pracowała dla mnie następująca nieruchomość
źródło
Jeszcze jedna rzecz, która może być przyczyną tego jest posiadanie nieprawidłowy
version
z<parent>
projektem.W moim przypadku wskazywał na nieistniejący projekt iz jakiegoś powodu IntelliJ obniżył wersję w ustawieniach do 1.5, a później, kiedy go naprawiłem, nadal interpretował wersję kodu docelowego jako 5 (pomimo ustawienia go na 11).
źródło