wake-up-neo.com

JavaFX existiert nicht mit Java 9 und Intellij Idea

Ich verwende Intellij Idea, um ein Projekt zu kompilieren, das Maven-Abhängigkeiten verwendet, und Intellij sagt mir ständig, dass mein Projekt 50 Fehler enthält, da JavaFX nicht vorhanden ist.

Intellij hebt nicht alle javafx-Abhängigkeiten in meinem Code als Fehler hervor. Es ist nur so, dass das Programm, sobald ich den Run drücke und kompiliere, sagt, dass nicht alles in JavaFX existiert.

Ich habe versucht, das neueste JDK (Java 9.0.1) erneut herunterzuladen, was jedoch nicht behoben wurde. Ich ging in die Default-Projektstruktur und -Projektstruktur ein, um sicherzustellen, dass die richtige Jdk verwendet wurde und das Problem nicht behoben wurde. Alle von mir verwendeten jdks scheinen die javafx-Pakete als im Projekt enthalten aufzulisten.

Dies ist auch nur ein Problem für ein bestimmtes Projekt, an dem ich mit einem Freund arbeite. Möglicherweise müssen wir unseren gesamten Code in ein neues Projekt verschieben. Ich bin mir jedoch nicht sicher, ob dadurch irgendetwas behoben wird.

Irgendwelche Vorschläge?

6
user3785637

Versuchen Sie, unter "Projektstruktur | Projekt" das Sprachniveau des Projekts auf "9" zu setzen.

11
y.bedrov

Okay, ich sehe was mein Problem war.

Neben Try to set project language level to "9" in "Project Structure | Project" hatte ich eine Maven-Einstellung in pom.xml, die so aussieht:

<plugin>
    <groupId>org.Apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>${maven-compiler-plugin.version}</version>
    <configuration>
        <source>${Java.version}</source>
        <target>${Java.version}</target>
    </configuration>
</plugin>

und Java.version wurde irgendwo oben als 1.8 definiert. Ich musste es nur in 9 ändern.

10
Fuyang Liu

Dieses Problem hatte ich nach dem Upgrade eines JavaFX-Projekts von Java 8 auf Java 9.

Nachdem ich die üblichen Spracheinstellungen für das Projekt und das Modul in IntelliJ und Maven Pom überprüft hatte, stellte ich fest, dass das Modul explizit so eingestellt war, dass in den Java-Compiler-Einstellungen Java 8-Bytecode generiert wurde.

Schau in Preferences -> Build, Execution, Deployment -> Compiler -> Java Compiler. Stellen Sie sicher, dass Project bytecode version nicht gesetzt ist (oder richtig eingestellt ist) und dass Ihr Modul nicht mit einem falschen Wert in Per-module bytecode version aufgeführt ist.

5
ThirstyCamel
File --> Project Structure-->Module

Das Sprachniveau hier ist für mich auf 5 eingestellt. Es wurde auf 9 gesetzt, um Klassen usw. zuzulassen, und der gleiche Fehler wie oben beschrieben wurde für mich behoben. 

0
Mark Gilmore

Ich habe die Module in meinem gradle.build vermisst. Musste aktualisieren

javafx {
  version = "11"
  modules = [ 'javafx.controls', 'javafx.fxml' ]
}
0
inetphantom