Za pomocą IntelliJ IDE nie można skompilować żadnych projektów. Zrzuty ekranu ustawień poniżej:
Używane JDK:
SDK projektu i poziom językowy:
Poziom języka:
Czy ktoś ma jakieś pomysły?
Za pomocą IntelliJ IDE nie można skompilować żadnych projektów. Zrzuty ekranu ustawień poniżej:
Używane JDK:
SDK projektu i poziom językowy:
Poziom języka:
Czy ktoś ma jakieś pomysły?
Odpowiedzi:
Jeśli korzystasz z Maven
Dodaj wtyczkę kompilatora do węzła pom.xml
najwyższego poziomu project
:
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
(Podniesiony z komentarzy.)
Uwaga: jeśli nie masz nic przeciwko ponownemu zaimportowaniu projektu, jedyną rzeczą, którą naprawdę musisz zrobić, to zmienić pom i ponownie zaimportować projekt, wtedy IntelliJ wybierze prawidłowe ustawienia i nie musisz ich ręcznie zmieniać.
Project Structure -> Project Settings -> Modules -> Denpendencies -> Module SDK
.
Wygląda to na rodzaj błędu, który generuje Maven, gdy nie masz poprawnie skonfigurowanej wtyczki kompilatora. Oto przykład konfiguracji kompilatora Java 8.
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<!-- ... -->
<build>
<plugins>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.5.1</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
</build>
<!-- ... -->
</project>
project
, build
i potem plugins
.
<source>1.8</source>
i <target>1.8</target>
jest skonfigurowany, może wystąpić powyższy błąd.
java compiler
W oknie Ustawienia ustaw Docelowy kod bajtowy na 1.8
(lub 9 dla java9)
Istnieją dwa sposoby rozwiązania tego problemu:
Wiele odpowiedzi dotyczących Maven jest poprawnych, ale nie musisz bezpośrednio konfigurować wtyczki.
Jak opisano na stronie wiki wtyczki kompilatora Apache Maven, możesz po prostu ustawić 2 właściwości używane przez wtyczkę.
<project>
[...]
<properties>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
[...]
</project>
org.apache.maven.plugins:maven-compiler-plugin
w swoim pliku pom lub gradle, co w dokumentacji zamierzonej jest takie, że posiadanie tej właściwości ustawionej we właściwościach pom będzie wystarczające, zasadniczo dlatego, że ustawiają one domyślne wartości wtyczki, np. <Źródło> $ { maven.compiler.source} </source>
Naprawiłem to, przechodząc do Struktura projektu -> Moduły , znajdź dany moduł, kliknij kartę Zależności , zmień Module SDK
na Project SDK
.
Naprawiłem to, zmieniając docelową wersję kompilacji na 1.8. To jest w:
Plik >> Ustawienia >> Kompilacja, wykonanie, wdrożenie >> Kompilator >> Kompilator Java
W moim przypadku rozwiązałem ten problem, otwierając plik .iml projektu (znajduje się w folderze głównym projektu i ma taką samą nazwę jak nazwa projektu) i zmieniając wiersz <orderEntry type="jdk" jdkName="1.7" jdkType="JavaSDK" />
na<orderEntry type="jdk" jdkName="1.8" jdkType="JavaSDK" />
Miałem wszystko skonfigurowane tak jak w innych odpowiedziach tutaj, ale z jakiegoś powodu Idea zaktualizowała niepoprawnie plik .iml.
Naprawiłem to, modyfikując mój plik POM. Zwróć uwagę na ostatni komentarz pod najlepiej głosowaną odpowiedzią.
<plugin>
<artifactId>maven-compiler-plugin</artifactId>
<version>2.3.2</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
<encoding>UTF-8</encoding>
</configuration>
</plugin>
Źródło musi pasować do celu.
W pliku poziomu aplikacji Gradle >> compileOptions dodaj te dwa wiersze
android {
compileOptions {
...
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
...
}
}
W pliku compiler.xml znajdziesz:
<bytecodeTargetLevel>
<module name="your_project_name_main" target="1.8" />
<module name="your_project_name_test" target="1.8" />
</bytecodeTargetLevel>
i możesz zmienić wartość docelową ze starej na nową dla mnie, musiałem zmienić ją z 1,5 na 1,8
Dla mnie problem polegał na tym, że Maven nie mógł znaleźć odpowiednich konfiguracji, ponieważ te elementy zostały określone w pom nadrzędnej.
Zmiana pliku -> Ustawienia -> Kompilacja, Wykonywanie, Wdrażanie -> Maven -> Plik ustawień użytkownika, aby wskazać moje ustawienia niestandardowe z właściwymi repozytoriami, naprawił problem, który w przeciwnym razie był ukryty.
Dowiedziałem się o problemie poprzez Pomoc -> Pokaż dziennik w eksploratorze -> klikając plik dziennika, gdy poprzednio pojawił się tylko błąd w tytule i „java.lang.NullPointerException” w konsoli.
Korzystając z Intellij , korzystając z Maven , musisz sprawdzić, czy Intellij automatycznie zaimportował Twój projekt. Możesz to sprawdzić, klikając kartę Maven po prawej stronie edytora.
Jeśli Twojego projektu nie ma tutaj, dodaj pom.xml
plik, klikając +
.
Oczywiście projekt musi również mieć odpowiednie <build/>
:
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
Jeśli żadna z pozostałych odpowiedzi nie działa, sprawdź zestaw SDK modułu .
Po zaktualizowaniu pakietu SDK projektu do wersji 1.8, kompilatora Javac do wersji 1.8 pojawił się ten komunikat o błędzie. Problemem było dla mnie ustawienie „Moduł SDK”.
(w systemie Linux) Przejdź do, File > Project Structure...
a następnie w oknie, które zostanie otwarte, wybierz Modules
pod Project Settings
. Wybierz dany moduł z listy, a następnie z Dependencies
zakładki i upewnij się, że Module SDK
jest odpowiednio ustawiony.
Sprawdziłem wszystkie powyższe, ale błąd nadal występuje.
Ale zaimportuj ponownie wszystkie projekty maven (przycisk przeładowania w panelu projektów Maven) działa w moim przypadku.