Heim >Java >javaLernprogramm >Wie behebe ich Fehler im JavaFX-Medienmodul beim Ausführen einer JavaFX 11-Anwendung?

Wie behebe ich Fehler im JavaFX-Medienmodul beim Ausführen einer JavaFX 11-Anwendung?

DDD
DDDOriginal
2024-12-20 17:49:12473Durchsuche

How to Resolve JavaFX Media Module Errors When Running a JavaFX 11 Application?

Modulfehler beim Ausführen der JavaFx-Medienanwendung

Problem:

Beim Ausführen einer JavaFX 11-Anwendung mit dem in bereitgestellten Befehl Bei der Frage ist ein Fehler im Zusammenhang mit einem illegalen Zugriff zwischen den Klassen in javafx.media und javafx.graphics aufgetreten Module.

Lösung:

Um den Fehler zu beheben und die Anwendung erfolgreich auszuführen, stellen Sie sicher, dass das Modul javafx.media beim Anwendungsstart als benanntes Modul aufgelöst wird. Dies kann durch eine der folgenden Methoden erreicht werden:

1. Fügen Sie das Modul in das Argument --add-modules ein:

Ändern Sie den Befehl, um javafx.media als zusätzliches Modul in das Argument --add-modules einzuschließen:

/usr/lib/jvm/java-11-openjdk-amd64/bin/java 
-p ~/.m2/repository/org/openjfx/javafx-swing/11/javafx-swing-11.jar:
~/.m2/repository/org/openjfx/javafx-swing/11/javafx-swing-11-linux.jar:
~/.m2/repository/org/openjfx/javafx-graphics/11/javafx-graphics-11.jar:
~/.m2/repository/org/openjfx/javafx-graphics/11/javafx-graphics-11-linux.jar:
~/.m2/repository/org/openjfx/javafx-base/11/javafx-base-11.jar:
~/.m2/repository/org/openjfx/javafx-base/11/javafx-base-11-linux.jar:
~/.m2/repository/org/openjfx/javafx-controls/11/javafx-controls-11.jar:
~/.m2/repository/org/openjfx/javafx-controls/11/javafx-controls-11-linux.jar:
~/.m2/repository/org/openjfx/javafx-media/11/javafx-media-11.jar:
~/.m2/repository/org/openjfx/javafx-media/11/javafx-media-11-linux.jar 
--add-modules javafx.controls,**javafx.media**
-classpath ...

2. Machen Sie Ihren eigenen Code modular:

Erstellen Sie eine module-info.java-Datei in Ihrem Projektverzeichnis mit folgendem Inhalt:

module my.application {
    requires javafx.controls;
    requires javafx.media;

    // Replace with your Application class' package
    exports com.example.myapp to javafx.graphics;
}

Dann starten Ihre Anwendung mit dem Argument --module, um Ihr benutzerdefiniertes Modul anzugeben:

/usr/lib/jvm/java-11-openjdk-amd64/bin/java 
--module my.application
--add-modules javafx.base,javafx.graphics,javafx.controls
-classpath ...

3. Verwenden Sie ein JDK, das JavaFX enthält:

Laden Sie ein JDK herunter, das JavaFX enthält, z. B. BellSoft Liberica oder Azul Zulu, und verwenden Sie es, um Ihre Anwendung auszuführen.

Zusätzliche Hinweise :

  • Es wird empfohlen, nicht sowohl die JavaFX-JAR-Dateien als auch die JavaFX-Module auf dem zu platzieren Klassenpfad gleichzeitig. Dies kann zu dem in der Frage beschriebenen Fehler führen.
  • Wenn nach der Umstellung auf modularen Code Kompilierungsfehler im Zusammenhang mit fehlenden Symbolen auftreten, stellen Sie sicher, dass Sie das neueste Java Development Kit (JDK) installiert haben.
  • Weitere Informationen zur Modularität und zum Java Platform Module System finden Sie in der JavaFX-Dokumentation: https://openjfx.io/javadoc/11/javadoc/index.html

Das obige ist der detaillierte Inhalt vonWie behebe ich Fehler im JavaFX-Medienmodul beim Ausführen einer JavaFX 11-Anwendung?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn