error: package javafx.scene.web is not visible import javafx.scene.web.*;

  • Themenstarter Themenstarter marlem
  • Beginndatum Beginndatum
M

marlem

Gast
Hallo,

folgender Code:
Java:
package JavaFXUdemy;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.layout.GridPane;
import javafx.scene.web.*;
import javafx.stage.Stage;
import javafx.geometry.Insets;

public class Main extends Application  {
    
        
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    launch(args);
    }
    
    
    public void start(Stage primaryStage) {
    GridPane grid = new GridPane();
    grid.setPadding(new Insets(10,10,10,10));
    grid.setVgap(10);
    grid.setHgap(10);
    HTMLEditor htmlEditor = new HTMLEditor();
    grid.getChildren().addAll(htmlEditor);
    GridPane.setConstraints(htmlEditor,0,0);
    Scene scene = new Scene (grid, 300, 300);
    primaryStage.setScene(scene);
    primaryStage.setTitle("HTML EDITOR in JavaFX");
    primaryStage.show();
    
    }
}

Beim Complieren bekomme ich folgende Fehlermeldung:
JavaFXUdemy\Main.java:6: error: package javafx.scene.web is not visible
import javafx.scene.web.*;
^
(package javafx.scene.web is declared in module javafx.web, which is not in the module graph)
1 error

Was muss ich tun um den Fehler zu beseitigen?
 
Ich glaube ich habe ein Java Burnout 🙂
Gestern hat es getan heute nicht mehr.
Ich brauche nochmal Hilfe.

Die Main.java sieht so aus:
Java:
package JavaFXUdemy;

import javafx.application.Application;
import javafx.scene.Scene;
import javafx.scene.control.Button;
import javafx.scene.control.TextArea;
import javafx.scene.layout.GridPane;
import javafx.scene.web.*;
import javafx.stage.Stage;
import javafx.geometry.Insets;

public class Main extends Application  {
    
        
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    launch(args);
    }
    
    
    public void start(Stage primaryStage) {
    GridPane grid = new GridPane();
    grid.setPadding(new Insets(10,10,10,10));
    grid.setVgap(10);
    grid.setHgap(10);
    HTMLEditor htmlEditor = new HTMLEditor();
        htmlEditor.setPrefHeight(250);
        WebView browser = new WebView();
        browser.setPrefSize(400, 300);
      //  WebEngine webEngine = browser.getEngine();
        TextArea htmlCode = new TextArea();
        htmlCode.setWrapText(true);
        Button showHTMLButton = new Button("Zeige HTML-Code an");
        showHTMLButton.setOnAction(e ->{
            htmlCode.setText(htmlEditor.getHtmlText());
        });
    grid.getChildren().addAll(htmlEditor, htmlCode, showHTMLButton);
    GridPane.setConstraints(htmlEditor,0,0);
    GridPane.setConstraints(showHTMLButton,0,1);
    GridPane.setConstraints(htmlCode,0,2);
    //GridPane.setConstraints(browser,0,3);
    //Fenstergröße
    Scene scene = new Scene (grid, 600, 300);
    primaryStage.setScene(scene);
    primaryStage.setTitle("HTML EDITOR in JavaFX");
    primaryStage.show();
    
    }
}

In diesem Verzeichnis in die Datei Main.java:
C:\Projekte\Java\JavaFXUdemy\src\JavaFXUdemy

Ich bin im Dosfenster in diesem Verzeichnis:
C:\Projekte\Java\JavaFXUdemy\src>

Jetzt gebe ich folgendes ein:
C:\Projekte\Java\JavaFXUdemy\src>javac JavaFXUdemy/Main.java --module-path "C:\Program Files\Java\javafx-sdk-11.0.2\lib" --add-modules javafx.controls,javafx.fxml,java.logging,java.desktop, javafx.web

und bekomme folgende Fehlermeldung:
JavaFXUdemy\Main.java:8: error: package javafx.scene.web is not visible
import javafx.scene.web.*;
^
(package javafx.scene.web is declared in module javafx.web, which is not in the module graph)
error: Class names, 'javafx.web', are only accepted if annotation processing is explicitly requested
2 errors

Warum? Was mache ich falsch?
 
Ich habe es:
javac JavaFXUdemy/Main.java --module-path "C:\Program Files\Java\javafx-sdk-11.0.2\lib" --add-modules javafx.controls,javafx.fxml,java.logging,java.desktop,javafx.web

Was ist der Unterschied:
javac JavaFXUdemy/Main.java --module-path "C:\Program Files\Java\javafx-sdk-11.0.2\lib" --add-modules javafx.controls,javafx.fxml,java.logging,java.desktop, javafx.web

Ein LEERZEICHEN Oh Gott 🙂
 
Starten klappt auch nicht:
java --module-path "C:\Program Files\Java\javafx-sdk-11.0.2\lib" --add-modules javafx.controls,javafx.fxml,java.logging,java.desktop,javafx.web -cp . JavaFXUdemy/Main
Folgende Fehlermeldung:
Unrecognized option: --module-path
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

Was ist falsch? Ich blicke es nicht.
 
geht wieder! war in der Pfadangabe bei den Systemvariablen noch ein ältere JDK drin. der hat also nicht mit openjdk compiliert, sondern mit einem älteren.
 
Als kleine Motivation: mit Eclipse 2019-09, JDK 10 und den von e(fx)lipse installierten Plugins funktioniert es (ebenfalls), siehe Anhang
 

Anhänge

  • Eclipse_2019_09_mit_efx-Plugin.png
    Eclipse_2019_09_mit_efx-Plugin.png
    602,3 KB · Aufrufe: 49
Du Compilierst mit JDK 10.
So sieht es bei mir aus, Dateianhang.
 

Anhänge

  • Eclipse_JDK_12.png
    Eclipse_JDK_12.png
    62,9 KB · Aufrufe: 51
Wenn man das Setup richtig macht (z.B. wenn man der Doku auf openjfx.io zu Maven oder Gradle folgt), hat man ratz fatz ein Basis-Setup, dass sich schnell anpassen lässt. Da kann man dann z.B. die Kursdaten als weitere Sub-Module einfügen oder noch einfacher Source-Directories anpassen. Aber ich gebe zu, dass das dann schon wieder weiterer Einarbeitungsaufwand für Anfänger ist, der sehr schnell ausarten kann. Aber dennoch: aktuelle IDEs sollte problemlos auch Rumpf-Projekte anlegen können, die einem hier helfen, oder nicht?
 
Wieso muss es "auf-Teufel-komm-raus" mit Eclipse, OpenJFX und (Open)JDK >= 11 sein ? Die Anleitung unter https://openjfx.io/openjfx-docs/#IDE-Eclipse wurde befolgt ? Und Doppelpostings ( Xing - Eclipse Forum ) sind nicht immer gerne gesehen.
Weiß ich, aber wenn ich nicht weiß ob hier mein Problem gelöst werden kann, muss es mir gestattet sein, nach Alternativen zu suchen.

Warum Eclipse?
weil ich seit mehreren Jahren sehr begeistert mit Eclipse Java-Code und meiner Meinung nach Eclipse in Sachen Usability die beste IDE ist.
 
Zuletzt bearbeitet von einem Moderator:

Zurück
Oben